如何降低CPU使用率过高的问题?
摘要:# CPU使用率相关指标 - user(通常缩写为 us),代表用户态 CPU 时间。注意,它不包括下面的 nice 时间,但包括了 guest 时间。 - nice(通常缩写为 ni),代表低优先级用户态 CPU 时间,也就是进程的 ni
CPU使用率相关指标
user(通常缩写为 us),代表用户态 CPU 时间。注意,它不包括下面的 nice 时间,但包括了 guest 时间。
nice(通常缩写为 ni),代表低优先级用户态 CPU 时间,也就是进程的 nice 值被调整为 1-19 之间时的 CPU 时间。这里注意,nice 可取值范围是 -20 到 19,数值越大,优先级反而越低。
system(通常缩写为 sys),代表内核态 CPU 时间。
idle(通常缩写为 id),代表空闲时间。注意,它不包括等待 I/O 的时间(iowait)。
iowait(通常缩写为 wa),代表等待 I/O 的 CPU 时间。
irq(通常缩写为 hi),代表处理硬中断的 CPU 时间。
softirq(通常缩写为 si),代表处理软中断的 CPU 时间。
steal(通常缩写为 st),代表当系统运行在虚拟机中的时候,被其他虚拟机占用的 CPU 时间。
guest(通常缩写为 guest),代表通过虚拟化运行其他操作系统的时间,也就是运行虚拟机的 CPU 时间。
guest_nice(通常缩写为 gnice),代表以低优先级运行虚拟机的时间。
怎么查看 CPU 使用率
top
top - 15:45:59 up 364 days, 20:43, 0 users, load average: 0.00, 0.01, 0.00
Tasks: 139 total, 1 running, 95 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.8 us, 1.8 sy, 0.0 ni, 96.0 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st
KiB Mem : 3514764 total, 179812 free, 1061072 used, 2273880 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 2100148 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
9951 ubuntu 20 0 989840 108760 36424 S 1.3 3.1 0:23.99 node
30257 root 20 0 588648 20356 4840 S 1.0 0.6 315:41.03 barad_agent
11399 root 20 0 1114904 151668 21872 S 0.7 4.3 535:40.93 YDService
9995 ubuntu 20 0 1039160 68076 33532 S 0.3 1.9 0:55.91 node
26555 ubuntu 20 0 108500 4476 3144 S 0.3 0.1 0:01.23 sshd
26615 ubuntu 20 0 978144 89548 38244 S 0.3 2.5 0:08.44 node
1 root 20 0 225544 7596 4920 S 0.0 0.2 19:35.32 systemd
第三行 %Cpu 就是系统的 CPU 使用率。
不过需要注意,top 默认显示的是所有 CPU 的平均值,这个时候你只需要按下数字 1 ,就可以切换到每个 CPU 的使用率了。
继续往下看,空白行之后是进程的实时信息,每个进程都有一个 %CPU 列,表示进程的 CPU 使用率。它是用户态和内核态 CPU 使用率的总和,包括进程用户空间使用的 CPU、通过系统调用执行的内核空间 CPU 、以及在就绪队列等待运行的 CPU。在虚拟化环境中,它还包括了运行虚拟机占用的 CPU。
