이는 vmware 5.5에서 실행되는 5.7 32비트 가상 머신입니다. 주인. 로드 평균값은 높아지고 CPU 사용량은 낮아지는 것을 볼 수 있습니다. 가상 머신에는 4개의 vCPU가 있으며 로드는 때때로 20에 도달합니다.
vmstat를 실행하면 "r" 열에 더 높은 값이 표시됩니다.
문제는 커널 실행 대기열에서 프로세스를 어떻게 찾느냐는 것입니다.
ps r -A와 같이 인터넷에서 찾은 ps 조합을 시도했지만 운이 없었습니다.
vmstat 출력:
[ ~]# vmstat 1 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
9 0 8 822516 322880 1593592 0 0 1 65 9 6 1 1 98 0 0
7 0 8 823136 322880 1593584 0 0 0 0 9387 97411 8 9 84 0 0
53 0 8 823508 322880 1593588 0 0 0 236 8332 108913 9 12 79 0 0
64 0 8 818424 322888 1597548 0 0 0 116 9027 140988 10 11 79 0 0
69 0 8 820284 322888 1597548 0 0 0 0 9095 128715 8 10 83 0 0
64 0 8 820284 322888 1597692 0 0 0 0 8701 119305 9 11 80 0 0
3 0 8 819540 322888 1597688 0 0 0 4704 9531 112734 8 8 84 0 0
81 0 8 818052 322888 1599452 0 0 0 224 8324 102409 10 13 77 0 0
8 0 8 816192 322888 1601788 0 0 0 3240 9181 98478 9 11 80 0 0
7 0 8 815076 322888 1601872 0 0 0 0 9250 104422 10 9 81 0 0 mpstat 1 10
06:04:03 PM CPU usr nice sys iowait irq soft steal guest idle
06:04:04 PM all 9.32 0.00 8.82 0.00 0.25 4.03 0.00 0.00 77.58
06:04:05 PM all 9.85 0.00 8.84 0.00 0.25 4.29 0.00 0.00 76.77
06:04:06 PM all 8.29 0.00 5.78 0.00 0.50 4.77 0.00 0.00 80.65
06:04:07 PM all 9.82 0.00 7.81 0.00 0.25 4.28 0.00 0.00 77.83
06:04:08 PM all 8.84 0.00 5.30 0.00 0.25 4.29 0.00 0.00 81.31
06:04:09 PM all 10.05 0.00 9.05 0.00 0.50 4.02 0.00 0.00 76.38
06:04:10 PM all 9.60 0.00 7.32 0.00 0.51 4.04 0.00 0.00 78.54
06:04:11 PM all 8.33 0.00 5.81 0.00 0.25 4.29 0.00 0.00 81.31
06:04:12 PM all 9.57 0.00 7.05 0.00 0.25 4.03 0.00 0.00 79.09
06:04:13 PM all 7.83 0.00 5.05 0.00 0.25 3.79 0.00 0.00 83.08
Average: all 9.15 0.00 7.08 0.00 0.33 4.18 0.00 0.00 79.25
답변1
대개로드 평균은 CPU가 필요한 일이 많기 때문에 발생하지만 항상 그런 것은 아닙니다. 일반적인 원인은 IO(디스크 또는 네트워크)를 기다리는 프로세스입니다.
실행 ps -e v
해 보고 프로세스 상태 플래그를 찾아보세요.
state The state is given by a sequence of characters, for example, "RWNA". The first character indicates the run state of the process:
D Marks a process in disk (or other short term, uninterruptible) wait.
I Marks a process that is idle (sleeping for longer than about 20 seconds).
L Marks a process that is waiting to acquire a lock.
R Marks a runnable process.
S Marks a process that is sleeping for less than about 20 seconds.
T Marks a stopped process.
W Marks an idle interrupt thread.
Z Marks a dead process (a "zombie").
이는 ps
맨페이지에 있으므로 맨페이지에서 자세한 내용을 찾을 수 있으며 R
프로세스 D
가 특히 흥미로울 수 있습니다.
답변2
top은 어떤 프로세스가 시스템 리소스를 사용하고 있는지 찾는 데 내가 아는 최고의 도구입니다.
내 컴퓨터에서:
$ top
top - 14:14:00 up 1 day, 2:00, 4 users, load average: 0.24, 0.23, 0.24
Tasks: 235 total, 3 running, 232 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.2 us, 0.5 sy, 0.0 ni, 96.2 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 7870416 total, 7097428 used, 772988 free, 346524 buffers
KiB Swap: 8081404 total, 0 used, 8081404 free. 3621000 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4669 postgres 20 0 2037632 63924 37168 S 19.3 0.8 0:29.23 postgres
4671 postgres 20 0 2037592 64476 38532 S 12.8 0.8 0:25.71 postgres
4672 postgres 20 0 2037452 62992 38004 S 12.8 0.8 0:25.36 postgres
1324 root 20 0 766268 212364 173952 S 6.4 2.7 22:34.20 Xorg
3804 ybounya 20 0 656468 23560 13244 S 6.4 0.3 1:44.77 gnome-terminal
따라서 현재 PID 4669(postgres)는 19.3%를 사용하고 있고, 4671은 12.6%를 사용하고 있는 것을 알 수 있습니다. 메모리 및 기타 중요한 리소스를 볼 수도 있습니다.