
지난 며칠 동안 한 가상 머신에서 이상한 I/O 스파이크가 발생했습니다.
2.6.32-504.el6.x86_64 #1 SMP Tue Sep 16 01:56:35 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux Red Hat Enterprise Linux Server 릴리스 6.6(산티아고)
Elasticsearch 데이터 노드를 실행하는 약 50G의 메모리와 24개의 CPU.
해당 elasticsearch 노드로 이동하는 요청에서 시간 초과를 감지했으며 지금은 vm을 검사한 후 산발적으로 디스크 I/O가 중단되는 것을 확인할 수 있었습니다. 가상 머신의 디스크 중 하나에서 ioping을 사용했습니다.
4KiB <<< /dev/sdf1(블록 장치 100.0GiB): 요청=1 시간=3.76ms(준비)
4KiB <<< /dev/sdf1(블록 장치 100.0GiB): 요청=2 시간=1.17초
4 KiB <<< /dev/sdf1 (블록 장치 100.0 GiB): 요청=3 시간=131.7 us
4 KiB <<< /dev/sdf1 (블록 장치 100.0 GiB): 요청=4 시간=282.8 us
4 KiB <<< /dev/sdf1 (블록 장치 100.0 GiB): 요청=5 시간=999.4 ms
4 KiB <<< /dev/sdf1 (블록 장치 100.0 GiB): 요청=6 시간=632.7 ms
4KiB <<< /dev/sdf1(블록 장치 100.0GiB): 요청=7 시간=2.15초(느림)
4KiB <<< /dev/sdf1(블록 장치 100.0GiB): 요청=8 시간=400.2ms
4 KiB <<< /dev/sdf1 (블록 장치 100.0 GiB): request=9 time=20.0 s (느림)
4KiB <<< /dev/sdf1(블록 장치 100.0GiB): 요청=10 시간=1.10ms(빠름)
4KiB <<< /dev/sdf1(블록 장치 100.0GiB): 요청=11 시간=1.30ms(빠름)
4KiB <<< /dev/sdf1(블록 장치 100.0GiB): 요청=12 시간=2.20ms(빠름)
4KiB <<< /dev/sdf1(블록 장치 100.0GiB): 요청=13 시간=2.61ms(빠름)
4 KiB <<< /dev/sdf1 (블록 장치 100.0 GiB): request=14 time=203.6 us (빠름)
4KiB <<< /dev/sdf1(블록 장치 100.0GiB): 요청=15 시간=1.09ms(빠름)
4 KiB <<< /dev/sdf1 (블록 장치 100.0 GiB): request=16 time=319.3 us (빠름)
4 KiB <<< /dev/sdf1 (블록 장치 100.0 GiB): request=17 time=249.8 us (빠름)
보시다시피 한 순간에 20초의 스파이크가 발생했습니다. 가상 머신이 vmware esxi 블레이드에 있습니다. 데이터 저장소는 3개의 추가 가상 머신에서 사용되고 있지만 이들 중 어느 것도 이러한 종류의 지연 시간 문제를 보여주지 않습니다. fsck와 tune2fs를 시도했는데 둘 다 파일 시스템에 아무런 문제도 나타나지 않았습니다.
이 문제가 발생하기 시작했을 때 가상 머신에 업데이트가 없었습니다. 이 문제를 디버깅하는 방법에 대한 힌트를 주시면 감사하겠습니다.
편집 : 여기에 -d 정보가 있습니다. lv가 100% 바쁘고 java가 되는 것 같습니다(elasticsearch가 그 순간 읽고 있습니다).
LVM | vg00-lv_data | 바쁘다 100% | | 8904를 읽으세요 | 4개 | | KiB/r 11 | KiB/w 4 |
| MBr/초 10.03 | MBw/초 0.00 | | 평균 21.41 | 아비오 1.12ms |PID TID
RDDSK WRDSK
WCANCL DSK
CMD 1/12629 -
100.3M 12K 0K 100%
자바
답변1
결국 모든 것은 엘라스틱서치의 결과인 것으로 보인다. 클러스터에서 노드를 제외했다가 다시 추가하여 샤드가 머신에서 재배치된 다음 다시 머신으로 돌아오게 했습니다. 이상한 이유로 문제가 해결되었습니다.