기계가 느리게 작동하는 이유를 확인하는 방법은 무엇입니까?

기계가 느리게 작동하는 이유를 확인하는 방법은 무엇입니까?

저는 그래픽 SSH 클라이언트(securessh)를 사용하여 Linux 서버(가상 머신으로 설치됨)에 로그인합니다. 서버는 tomcat5.5 서버를 실행합니다.관계설치되었습니다.

명령을 입력하거나 작은 파일(약 5-6MB)을 삭제/복사할 때 쉘이 응답하는 데 오랜 시간이 걸립니다(10초에서 거의 1분까지). top메모리/CPU 시간을 많이 사용하는 프로세스가 있는지 확인하기 위해 실행을 시도했습니다 .

top - 13:34:41 up 86 days, 16:04,  1 user,  load average: 2.13, 0.99, 1.94
Tasks:  63 total,   1 running,  62 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.0%us,  1.5%sy,  0.0%ni, 96.2%id,  0.2%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   3896416k total,  3097824k used,   798592k free,   167180k buffers
Swap:   915664k total,       84k used,   915580k free,  2409236k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                      
20436 tomcat55  20   0  359m 217m  13m S   18  5.7   2713:04 jsvc                                 

tomcat55 사용자만이 많은 리소스를 사용합니다. 위의 출력에 따르면 이 사용자는 메모리의 5.7%와 CPU의 5.7%만을 소비하고 있는 것으로 보입니다. 제가 top출력을 잘못 읽었나요? CPU 및 메모리 사용률이 너무 낮은 경우 시스템 성능이 그토록 저하되는 이유는 무엇입니까?


편집하다:이제 실행하여 다음을 얻으려고 합니다.

ATOP - repository         2011/09/20  16:08:48               10 seconds elapsed
PRC | sys   0.17s | user   0.03s | #proc     64 | #zombie    0 | #exit      4 |
CPU | sys      2% | user      1% | irq       0% | idle    198% | wait      0% |
cpu | sys      1% | user      1% | irq       0% | idle     98% | cpu001 w  0% |
cpu | sys      0% | user      0% | irq       0% | idle     99% | cpu000 w  0% |
CPL | avg1   0.05 | avg5    0.92 | avg15   1.29 | csw      976 | intr      61 |
MEM | tot    3.7G | free  656.7M | cache   2.4G | buff  170.9M | slab  241.3M |
SWP | tot  894.2M | free  894.1M |              | vmcom 781.9M | vmlim   2.7G |
DSK |         sda | busy      0% | read       0 | write      9 | avio    0 ms |
NET | transport   | tcpi      18 | tcpo      26 | udpi       0 | udpo       0 |
NET | network     | ipi       22 | ipo       26 | ipfrw      0 | deliv     22 |
NET | eth1     0% | pcki      34 | pcko      26 | si    2 Kbps | so   11 Kbps |

  PID  SYSCPU  USRCPU  VGROW  RGROW  RDDSK  WRDSK  ST EXC S  CPU CMD     1/1   
 4687   0.06s   0.02s     0K     0K      -      -  NE   0 E   1% <lsb_release>
 4689   0.04s   0.01s     0K     0K      -      -  NE   0 E   1% <apt-cache>   
 4684   0.04s   0.00s   132K   132K     0K     0K  --   - R   0% atop
 4673   0.02s   0.00s     0K     0K     0K     0K  --   - S   0% sshd         
 4152   0.01s   0.00s     0K     0K     0K     0K  --   - S   0% vmware-guestd
 2302   0.00s   0.00s     0K     0K     0K     4K  --   - S   0% kjournald
 4688   0.00s   0.00s     0K     0K      -      -  NE   0 E   0% <sh> 
 4686   0.00s   0.00s     0K     0K      -      -  NE   0 E   0% <sh>    

내가 올바르게 이해했다면 "좀비"는 없지만 여전히 CPU 시간의 대부분을 차지합니다(199%에서 200%로 점프). 이것이 예상되는 동작입니까?

답변1

또한iostat당신은 또한 고려해야합니다위에(http://www.atoptool.nl/) CPU가 아닌 병목 현상을 식별합니다.

답변2

문제는 느린 디스크 I/O일 수 있습니다. 다음을 실행해 보세요.

$ iostat -d -x 5 3

출력에 대한 설명이 있습니다.여기

답변3

예를 들어 파일 시스템 명령은 cpCPU 시간이나 메모리를 많이 차지해서는 안 되며, 그 내용이 top표시됩니다. 이 프로그램을 사용해 보십시오 iotop(설치가 필요할 수 있음).

답변4

지금은 소스를 찾을 수 없습니다. 죄송합니다만, 가상 드라이브가 저장된 위치와 관련이 있을 수 있다는 내용을 읽은 기억이 납니다. NFS를 통해 저장하고 액세스하는 경우 오버헤드와 지터가 많이 발생합니다.

Virtualbox에는 IO 캐시를 조정하는 옵션이 있습니다. 이러한 옵션을 살펴보는 것이 좋습니다. 이는 cp와 같이 데이터를 복사하는 간단한 프로그램에 영향을 미칩니다.

관련 정보