부하 평균이 높은데 어떻게 해결하나요? [폐쇄]

부하 평균이 높은데 어떻게 해결하나요? [폐쇄]

가상 서버를 수정해야 합니다. 무슨 문제가 있나요? 메모리가 필요합니까? 그렇지 않으면?

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와 같은 다른 도구를 사용하여 애플리케이션 대기 시간의 정확한 소스에 대한 더 많은 통찰력을 얻을 수 있습니다.

관련 정보