가상 서버를 수정해야 합니다. 무슨 문제가 있나요? 메모리가 필요합니까? 그렇지 않으면?
4코어 4GB RAM
top - 10:06:13 up 53 min, 1 user, load average: 31.74, 30.17, 24.79
Tasks: 180 total, 1 running, 179 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.9%us, 0.2%sy, 0.0%ni, 69.3%id, 29.6%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4194304k total, 2753136k used, 1441168k free, 0k buffers
Swap: 4194304k total, 0k used, 4194304k free, 1060564k cached
답변1
귀하가 제공한 정보를 보면 귀하의 서버에 더 빠른 디스크가 필요하다는 점만 알 수 있습니다.
atop
어떤 프로그램이 가장 많은 디스크 IO를 수행하는지 확인하기 위해 를 사용해 볼 수 있습니다 . 운이 좋다면 IO를 줄이도록 프로그램을 구성할 수 있습니다.
답변2
로드 평균을 계산하는 방법에 대한 논의는 다소 오래되었지만 여전히 유용한 이 기사를 확인하세요.
http://www.linuxjournal.com/article/9001?page=0,1
데이터에 따르면 로드 평균이 약 24~32이고 코어가 4개이므로 로드 평균/코어는 약 6~8(CPU에서 대기 중인 프로세스)입니다. CPU 사용률이 낮기 때문에(69% 유휴) I/O가 완료되기를 기다리는 스레드 수가 많다는 결론만 내릴 수 있습니다(로드 평균 계산에는 I/O가 완료되기를 기다리는 스레드가 포함됩니다). 높은 대기율(~30)도 같은 의미인 것 같습니다. 두 가지 작업을 수행할 수 있습니다. 1. 디스크에서 iostat를 실행하여 각 디스크의 대기 시간에 대한 자세한 통계를 확인합니다. 2. ps를 실행하고 상태에 "D"가 있는지 확인하여 I/O가 완료되기를 기다리는 스레드를 확인합니다. 위 문제를 해결하기 위한 다음 단계(문제에 따라)에는 더 좋고 빠른 디스크를 사용하거나 코드의 I/O 경로를 자세히 살펴보는 것이 포함될 수 있습니다. perf와 같은 다른 도구를 사용하여 애플리케이션 대기 시간의 정확한 소스에 대한 더 많은 통찰력을 얻을 수 있습니다.