[ElasticSearch] Logstash 와 Elasticsearch / 디스크 I/O 병목
·
Data Enginnering/Elastic
Logstash 와 Elasticsearch 노드의 관계1. Logstash 노드의 역할데이터 수집: 다양한 소스(파일, 데이터베이스, API 등)로부터 데이터를 가져옵니다.데이터 변환: 필터링, 포맷 변경, 필드 추가/삭제 등의 작업을 수행해 데이터를 Elasticsearch가 처리할 수 있는 형태로 가공합니다.데이터 전송: 변환된 데이터를 Elasticsearch 클러스터에 전송합니다.2. Elasticsearch 노드의 역할Logstash에서 받은 데이터를 처리:Logstash에서 전송된 데이터는 Elasticsearch 클러스터로 들어옵니다.Elasticsearch는 인덱스와 Shard를 기반으로 데이터를 분배합니다.데이터 저장:데이터는 적절한 Primary Shard에 저장됩니다.Elastics..
[ElasticSearch] 성능 최적화의 해석
·
Data Enginnering/Elastic
성능 최적화의 해석1. kB_read/s와 kB_wrtn/s의 의미kB_read/s:디스크에서 데이터를 읽는 속도를 나타냅니다.검색 쿼리를 실행할 때 디스크에서 얼마나 많은 데이터를 읽는지 보여줍니다.검색 속도가 중요하다면, 읽기 속도가 높은 것이 일반적으로 더 많은 데이터가 처리되고 있음을 의미할 수 있습니다.kB_wrtn/s:디스크에 데이터를 쓰는 속도를 나타냅니다.데이터 색인(indexing) 작업 시 얼마나 많은 데이터를 디스크에 쓰는지 보여줍니다.쓰기 속도가 높으면 색인이 활발하게 이루어지고 있다는 뜻이며, 쓰기 지연이 없으면 성능이 양호하다고 볼 수 있습니다.2. 읽기 속도(kB_read/s) 증가좋은 신호일 수 있는 경우:검색 쿼리가 많아지고, 효율적으로 처리되고 있는 경우.캐시 미스(Cac..
[Elasticsearch] 샤딩(Sharding), kBwrtn/s vs kBread/s 비교
·
Data Enginnering/Elastic
샤딩 (Sharding)샤드 개수 정하기레플리카는 데이터를 복제하는 것이다.엘라스틱 서치에서는 샤드 1개가 50GB를 넘지 않도록 권장한다.레플리카가 많아질 수록 색인 성능은 떨어지고, 읽기 성능은 좋아진다.반대로 레플리카가 적으면 색인 성능은 좋지만, 읽기 성능은 떨어진다.레플리카가 많은 경우,데이터를 여러 번 복사해야 하므로 색인 성능은 떨어진다.읽기 성능은 데이터를 조회할 때의 속도이다. 레플리카가 여러 개라면, 클라이언트가 요청한 읽기 작업을 복제분들로 분산시킬 수 있기 때문에 더 많은 요청을 빠르게 처리할 수 있다.샤드가 메모리에 주는 부하노드의 힙 메모리는 Elasticsearch에서 데이터를 처리하고 관리하기 위해 사용하는 Java 힙 메모리를 의미합니다. 각 샤드의 인덱스 정보를 유지하는 ..
[ElasticSearch] 검색 성능 최적화
·
Data Enginnering/Elastic
ElasticSearch 노드 수를 늘리면 어떻게 되는가?노드 수를 늘리면 시스템의 총 자원이 증가하여 더 많은 작업을 동시에 처리할 수 있게 됩니다. 이는 CPU 사용률과 디스크 I/O 활동의 증가로 나타나며, 평균 kB_read/s와 kB_wrtn/s가 상승하는 결과를 가져옵니다. 이러한 변화는 시스템이 더 높은 처리량을 달성하고 있음을 의미하지만, 동시에 리소스 사용의 효율성을 유지하기 위해 적절한 클러스터 구성과 관리가 필요합니다. Index SortingIndex Sorting은 Elasticsearch에서 인덱스를 생성할 때 샤드 내부의 세그먼트(segment)가 특정 필드나 필드들의 기준으로 정렬되도록 설정하는 기능입니다.일반적인 검색 정렬 방식: 검색 과정: 일반적으로 검색 시에는 쿼리에 ..
[ElasticSearch] 데이터 처리, 검색 성능 최적화
·
Data Enginnering/Elastic
데이터 처리에 대한 지식들배치 크기 ( Batch Size )배치 크기는 한 번에 처리할 데이터 묶음 크기비유하자면, 주방장(프로세서)이 한 번에 요리할 수 있는 음식(데이터) 양이다.만약 Logstash 가 데이터를 수집하여 Elasticsearch 에 보내는 작업에서 배치 크기가 100 으로 설정하면, 데이터를 100개씩 묶어 한 번에 처리한다.작은 배치 : 주문이 들어올 때마다 바로 요리를 시작. 빠르게 대응할 수 있지만 효율성이 떨어질 수 있다.큰 배치 : 여러 주문을 모아서 한 번에 요리한다. 효율적이지만 첫 음식이 나오기까지 시간이 걸린다. 힙 사이즈 (Heap Size)힙 사이즈는 사용할 수 있는 최대 메모리 크기프로그램이 사용할 수 있는 창고 공간이다.작은 힙 : 작은 창고. 공간이 부족해..
[ElasticSearch] 샤드 (Shard) & 인덱싱 (Indexing)
·
Data Enginnering/Elastic
Shard 여러 노드를 효율적으로 사용하기 위해 노드에선느 데이터를 샤드라는 단위로 분산 저장한다.샤드 하나의 크기는 10~40GB 정도로 관리하는 것이 좋다고 권고된다.노드 수에 비해 샤드가 너무 많으면 필요 이상으로 리소스를 소비하게되고, 인덱스 검색을 위해서는 모든 샤드에 접근해야하기에 성능에 좋지 않습니다.Primary Shard 는 문서가 저장되는 원본 샤드이다.색인과 검색 성능에 모두 영향을 준다.Replica Shard 는 복제 샤드로써 문제가 생기면 Primary Shard 로 승격된다. Primary Shard 의 개수가 성능에 영향을 준다.PS 3 에 장애가 발생하면 RS 3 을 PS 3 으로 승격한다.새로운 PS 3 이 RS 3 을 생성한다.PS 1 은 Replica를 잃었기 떄문에 ..