Linux에서 예측할 수 없는 대규모 I/O 성능 저하

Linux에서 예측할 수 없는 대규모 I/O 성능 저하

저는 ~6년 동안 아무 문제 없이 데비안 테스트를 사용하고 있지만(정기적으로 업데이트만 하고 있습니다), 최근에는 "재부팅할 때까지 지속되는 낮은 I/O 성능"으로 요약할 수 있는 임의의 동작을 보여주기 시작했습니다.

문제는 갑자기 모든 디스크 읽기 및 쓰기 속도가 최대 5MB/초로 느려져 지속적인 읽기 및 쓰기가 발생한다는 것입니다. 속도가 너무 낮기 때문에 디스크가 기계적으로 문제를 일으키거나 스트레스를 받지는 않지만 재부팅할 때까지 모든 것이 느려집니다.

컴퓨터의 I/O 하위 시스템은 OCZ Vertex 3 SSD 1개와 WD Caviar Black HDD 2개로 구성됩니다. SSD는 OS의 읽기 작업이 많은 부분을 보유하고 HDD의 파티션은 나머지 부분을 보유합니다.

문제를 진단하기 위해 다음을 시도했지만 성공하지 못했습니다.

  • topCPU나 I/O 사용량 모두에서 폭주 활동이 표시되지 않습니다.
  • hdparm디스크의 정상적인 성능 등급을 반환합니다( -t하지만 확인만 했습니다).
  • smartctl디스크에는 성능 문제가 표시되지 않습니다. 오랜 테스트 결과 디스크가 새것만큼 좋은 것으로 나타났습니다.

시스템에는 Z77 칩셋, 16GB RAM 및 Intel i7 3770K CPU가 있으며 통계에 따르면 RAM, I/O 또는 CPU에 포화 징후가 나타나지 않지만 이와 같은 문제(특히 커널 공간)를 디버깅한 경험이 없습니다. 도움을 주시면 감사하겠습니다.

업데이트 1:

  • 예방 조치로 모든 파티션에서 fsck를 (강제) 실행했습니다. 모든 FS는 깨끗합니다.
  • 우연히 한 달 전에 나온 BIOS 업그레이드를 찾아서 적용했습니다.
  • 파티션이 50% 이상 채워지지 않습니다.

업데이트 2:

문제는 이틀 동안 나타나지 않습니다. 또는 fsckBIOS 업데이트로 시스템의 일부 막힌 부분을 청소했습니다. 계속해서 문제를 모니터링하고 있으며 사후 답변으로 질문을 마무리하겠습니다.

업데이트 3:

문제가 다시 나타났고 좀 더 자세히 조사했습니다. 답변을 참조하시기 바랍니다.

답변1

문제를 다시 재현할 수 있었는데 이는 큰 디스크 캐시의 결과였습니다. 내 디스크 캐시는 8GB 이상 커질 수 있으며 일부 응용 프로그램에서는 이를 좋아하지 않고 I/O에 문제가 있는 것 같습니다.

루트 로 디스크 캐시를 삭제하면 echo 3 > /proc/sys/vm/drop_caches문제가 해결됩니다. 현재로서는 대용량 디스크 캐시로 인해 이러한 I/O 성능 저하가 발생하는 이유를 모르겠습니다.

마지막 업데이트:더 자세히 조사한 결과 캐시에 있는 파일 수가 문제를 유발한다는 사실을 발견했습니다. 많은 작은 파일을 디스크에 다시 커밋하려고 시도하는 동안 디스크를 휴지통으로 만들었습니다. 나는 10년 동안 시스템을 사용한 이후로 과감히 64비트 데비안으로 다시 설치했습니다. 이제 원활하게 작동하고 있습니다. 아마도 32비트 운영 체제의 한계를 발견하면서 10년 동안의 업그레이드의 부작용이었을 것입니다.

답변2

에 의심스러운 메시지가 있나요 dmesg?

시스템의 병목 현상에 대한 통찰력을 얻기 위해 시도할 수 있는 몇 가지 추가 도구:

  • dstat
  • 대기 시간
  • 시스프로프

관련 정보