성능 최적화의 해석
1. kB_read/s와 kB_wrtn/s의 의미
- kB_read/s:
- 디스크에서 데이터를 읽는 속도를 나타냅니다.
- 검색 쿼리를 실행할 때 디스크에서 얼마나 많은 데이터를 읽는지 보여줍니다.
- 검색 속도가 중요하다면, 읽기 속도가 높은 것이 일반적으로 더 많은 데이터가 처리되고 있음을 의미할 수 있습니다.
- kB_wrtn/s:
- 디스크에 데이터를 쓰는 속도를 나타냅니다.
- 데이터 색인(indexing) 작업 시 얼마나 많은 데이터를 디스크에 쓰는지 보여줍니다.
- 쓰기 속도가 높으면 색인이 활발하게 이루어지고 있다는 뜻이며, 쓰기 지연이 없으면 성능이 양호하다고 볼 수 있습니다.
2. 읽기 속도(kB_read/s) 증가
- 좋은 신호일 수 있는 경우:
- 검색 쿼리가 많아지고, 효율적으로 처리되고 있는 경우.
- 캐시 미스(Cache Miss) 상황에서 디스크 읽기가 원활하게 이루어지고 있는 경우.
- 문제가 될 수 있는 경우:
- 캐시가 제대로 작동하지 않아 불필요한 디스크 읽기가 증가하는 경우.
- 디스크 I/O가 병목 상태에 있어 읽기 작업이 전체 성능을 저해하는 경우.
3. 쓰기 속도(kB_wrtn/s) 감소
- 좋은 신호일 수 있는 경우:
- 불필요한 데이터 쓰기 작업이 줄어들거나, 효율적인 색인 설계가 이루어진 경우.
- 데이터가 디스크 대신 메모리나 캐시에 잘 저장되고 있는 경우.
- Refresh Interval이나 Translog 설정이 조정되어 디스크 쓰기 빈도가 줄어든 경우.
- 문제가 될 수 있는 경우:
- 쓰기 작업이 제대로 이루어지지 않아 데이터 손실 위험이 있는 경우.
- 색인 지연(indexing lag)이 발생하거나, 쓰기 큐가 쌓이는 경우.
4. 성능 최적화 실험에서의 해석
- Elasticsearch 성능 최적화 실험에서는 목표에 따라 **kB_read/s**와 **kB_wrtn/s**의 변화가 달라질 수 있습니다.
검색(읽기) 성능을 최적화하는 경우:
- kB_read/s: 증가하는 것이 긍정적인 신호일 가능성이 높습니다. 이는 더 많은 검색 요청을 처리하거나, 효율적으로 데이터를 읽어오고 있다는 것을 나타냅니다.
- kB_wrtn/s: 낮아지는 경우 문제가 없을 수 있습니다. 색인 작업이 적어지고, 읽기 중심의 작업으로 자원이 전환된 상황일 수 있습니다.
색인(쓰기) 성능을 최적화하는 경우:
- kB_read/s: 일반적으로 큰 영향을 미치지 않으며, 주로 쓰기 성능 개선에만 집중합니다.
- kB_wrtn/s: 높아지더라도 쓰기 지연이 없다면, 더 많은 데이터를 빠르게 처리하고 있다는 긍정적인 신호일 수 있습니다. 단, 디스크 I/O가 병목이 되지 않도록 모니터링해야 합니다.
5. 실험 결과가 좋은 상황 예시
- 검색 성능 최적화:
- kB_read/s 증가, kB_wrtn/s 감소:
- 캐시 적중률이 높아졌거나, 데이터 읽기 효율이 향상된 상태.
- kB_read/s 증가, kB_wrtn/s 감소:
- 색인 성능 최적화:
- kB_wrtn/s 증가, kB_read/s 유지 또는 감소:
- 디스크 쓰기 병목 없이 더 많은 데이터를 색인할 수 있는 상태.
- kB_wrtn/s 증가, kB_read/s 유지 또는 감소:
6. 최적화를 위한 추가 고려 사항
- 디스크 I/O 병목:
- iowait를 확인하여 디스크 쓰기/읽기 작업이 시스템의 병목을 초래하지 않는지 점검하세요.
- 캐시 사용률:
- Elasticsearch는 파일 시스템 캐시를 적극적으로 활용합니다. kB_read/s가 너무 높다면, 캐시 미스율을 점검하여 캐시를 더 효율적으로 사용할 수 있는 방법을 모색하세요.
- Refresh Interval 조정:
- 색인 작업이 많을 경우, refresh_interval을 늘려 쓰기 빈도를 줄이고, kB_wrtn/s를 낮출 수 있습니다.
- Disk I/O 용량 모니터링:
- 고성능 SSD를 사용하여 디스크 I/O 병목을 줄이는 것도 고려하세요.
'Data Enginnering > Elastic' 카테고리의 다른 글
[ElasticSearch] Logstash 와 Elasticsearch / 디스크 I/O 병목 (0) | 2024.11.24 |
---|---|
[Elasticsearch] 샤딩(Sharding), kBwrtn/s vs kBread/s 비교 (0) | 2024.11.05 |
[ElasticSearch] 검색 성능 최적화 (1) | 2024.11.04 |
[ElasticSearch] 데이터 처리, 검색 성능 최적화 (5) | 2024.11.02 |
[ElasticSearch] 샤드 (Shard) & 인덱싱 (Indexing) (0) | 2024.11.01 |