문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
search:elasticsearch [2017/07/11 09:49] kwon37xi [최적화] |
search:elasticsearch [2020/07/10 12:30] kwon37xi [G1 GC] |
||
---|---|---|---|
줄 14: | 줄 14: | ||
===== Sharding Routing ===== | ===== Sharding Routing ===== | ||
+ | * 만약 Search 를 명확히 특정 Shard 단위로 할 수 있다면 샤딩을 촘촘히 해도 읽기/ | ||
+ | * Sharding 기준이 명확하지 않아서 여러 Shard 에 걸쳐 Search 를 해야한다면, | ||
+ | * 읽기 성능은 저하된다. | ||
+ | * Write Primary 노드는 여러개로 분산 되므로 Write 성능은 높아진다. | ||
==== Routing 강제 ==== | ==== Routing 강제 ==== | ||
라우팅을 강제할 수 있다. 라우팅 옵션 없이는 인덱싱 불가. | 라우팅을 강제할 수 있다. 라우팅 옵션 없이는 인덱싱 불가. | ||
줄 28: | 줄 32: | ||
===== Cluster 관리 ===== | ===== Cluster 관리 ===== | ||
* '' | * '' | ||
+ | * '' | ||
===== Docker로 띄우면서 Clustering 할 때 ===== | ===== Docker로 띄우면서 Clustering 할 때 ===== | ||
* [[: | * [[: | ||
+ | * [[https:// | ||
* 가장 쉬운 해결책 : '' | * 가장 쉬운 해결책 : '' | ||
* [[http:// | * [[http:// | ||
줄 68: | 줄 74: | ||
<code sh> | <code sh> | ||
--cap-add=SYS_PTRACE | --cap-add=SYS_PTRACE | ||
+ | </ | ||
+ | |||
+ | ===== Linux 설정 ===== | ||
+ | * [[https:// | ||
+ | < | ||
+ | sysctl -w vm.max_map_count=262144 | ||
</ | </ | ||
줄 79: | 줄 91: | ||
===== 최적화 ===== | ===== 최적화 ===== | ||
+ | * [[https:// | ||
* '' | * '' | ||
* '' | * '' | ||
줄 85: | 줄 98: | ||
* 메모리는 31GB 혹은 32bit Pointer가 될수 있는 max 값. | * 메모리는 31GB 혹은 32bit Pointer가 될수 있는 max 값. | ||
* Shard 는 최대 30GB가 될 정도 수준으로 구성.(Replica 도 계산시 단일 Shard로 쳐서) | * Shard 는 최대 30GB가 될 정도 수준으로 구성.(Replica 도 계산시 단일 Shard로 쳐서) | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | ===== Write Performance ===== | ||
+ | * Sharding 을 하지 않을 경우 모든 Write 요청이 하나의 Primary Data Node로 집중된다. | ||
+ | * Sharding 을 하면 각 Shard 별 Data Node로 분할 된다. | ||
+ | * Write Thread 는 CPU 갯수만큼 생성된다. 그리고 Queue가 200개 할당된다. | ||
+ | * Qeueue 갯수를 넘는 Write/ | ||
+ | * Write Thread 를 늘리고자 한다면 Scale Up 해서 CPU 갯수를 늘린다. Queue 갯수를 늘리는 것은 미봉책이므로 하지 않는 것이 좋다. | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * '' | ||
+ | GET / | ||
+ | </ | ||
+ | |||
+ | ===== Memory ===== | ||
+ | * **32GB** 넘기지 말 것. | ||
+ | * [[https:// | ||
+ | |||
+ | ===== G1 GC ===== | ||
+ | * G1 GC로 가려면 [[search: | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | |||
+ | ===== Disk Size ===== | ||
+ | * [[https:// | ||
+ | |||
===== RollingFileAppender로 변경 ===== | ===== RollingFileAppender로 변경 ===== | ||
줄 104: | 줄 149: | ||
* 한 번 Version Upgrade 한 뒤 indexing을 하면 다시 Downgrade 할 수 없다. index를 백업 한 뒤에 업그레이드하라. | * 한 번 Version Upgrade 한 뒤 indexing을 하면 다시 Downgrade 할 수 없다. index를 백업 한 뒤에 업그레이드하라. | ||
* 2.x 버전에서 Tokenizer Plugin 을 사용할 때, 기본 Tokenizer type 이름과 tokenizer 이름이 다를경우 해당 토크나이저의 설정 정보가 처음에는 올바른 상태로 그리고 다시 한 번은 null 인 상태로 '' | * 2.x 버전에서 Tokenizer Plugin 을 사용할 때, 기본 Tokenizer type 이름과 tokenizer 이름이 다를경우 해당 토크나이저의 설정 정보가 처음에는 올바른 상태로 그리고 다시 한 번은 null 인 상태로 '' | ||
+ | |||
===== 참조 ===== | ===== 참조 ===== | ||
* [[http:// | * [[http:// | ||
줄 109: | 줄 155: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// |