%EC%97%90%EC%84%9C%20%EB%94%94%EC%8A%A4%ED%81%AC%20%EC%93%B0%EA%B8%B0%20%EC%9E%91%EC%97%85%EC%9D%98%20%EC%9B%90%EC%9D%B8(%EB%98%90%EB%8A%94%20%EB%8C%80%EC%83%81%20%ED%8C%8C%EC%9D%BC)%EC%9D%84%20%ED%8C%8C%EC%9D%BC%EB%A1%9C%20%EC%A0%95%EB%A6%AC%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%B4%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
나는 PHP 기반 응용 프로그램(Apache)이 있는 가상 머신을 가지고 있는데, 디스크 활동을 볼 때 Apache가 실행 중일 때 170kbps의 지속적인 쓰기가 있습니다.
로드를 적용하면 서버 성능은 CPU에 제한되지만 이는 20-30배의 디스크 쓰기 IO 점프와 직접적인 관련이 있는 것으로 보입니다. CPU 사용량 그래프는 쓰기 디스크 액세스 그래프를 반영합니다.
어떤 아이디어가 있나요?
답변1
두 가지 권장사항:
아이오톱명령 과 같은 형식으로 실시간 I/O 사용량을 보여주는 편리한 프로그램입니다 top
. 이는 모든 I/O를 수행하는 스크립트/바이너리를 식별하는 데 도움이 됩니다. 최신 커널에는 이미 설치되어 있을 수도 있지만 표시되지 않는 경우 yum에서 RHEL에 제공할 수도 있습니다.
lsof
I/O 문제 해결에도 도움이 됩니다. 열려 있는 모든 파일이 나열됩니다.
업데이트
"지속적인" 디스크 활동이 있는 경우 iotop
어떤 프로세스가 원인인지 알려주어야 합니다. I/O 트랜잭션 기록 관련: 대부분의 Linux 배포판 어디에도 IO 기록이 기록되지 않는다고 생각하지만 cron 작업을 추가할 수 있습니다.
루트로서 crontab을 열고 crontab -e
다음 두 줄을 추가합니다.
* * * * * /bin/date >> /var/log/iotop; /usr/local/bin/iotop -bot --iter=3 -q >> /var/log/iotop
* * * * * /bin/date >> /var/log/lsof; /usr/bin/lsof -b -w >> /var/log/lsof
매분마다 덤프 iotop
하고 lsof
로그에 출력합니다. 파일이 모든 공간을 차지하지 않도록 각각에 대해 logrotate 스크립트를 추가하십시오. 예:
someuser@myhost:~> cat /etc/logrotate.d/lsof
/var/log/lsof {
rotate 3
weekly
compress
missingok
notifempty
}
답변2
관련 없는 백그라운드 작업이 php가 사전 컴파일된 /tmp 디렉터리의 내용을 삭제하는 것으로 보입니다. 결과적으로 PHP 사전 컴파일 프로세스가 다시 시작되어 지속적인 디스크 활동이 발생했습니다.