top查看 CPU使用情况
top查看 CPU使用情况
[root@localhost ~]# toptop - 20:53:55 up 7:19, 2 users, load average: 0.25, 0.09, 0.07
Tasks: 213 total, 2 running, 211 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.0 us, 1.0 sy, 0.0 ni, 96.7 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem : 995640 total, 72840 free, 684452 used, 238348 buff/cache
KiB Swap: 2097148 total, 1954812 free, 142336 used. 131848 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2333 chenjian 20 0 3035988 148220 19476 S 1.7 14.9 3:01.94 gnome-shell 64208 root 20 0 162100 2348 1592 R 0.7 0.2 0:00.09 top 747 root 20 0 295376 2024 1560 S 0.3 0.2 1:07.32 vmtoolsd 1419 root 20 0 334072 44032 27544 S 0.3 4.4 0:56.75 X 2649 chenjian 20 0 609896 10056 2336 S 0.3 1.0 0:58.83 vmtoolsd 60073 chenjian 20 0 698104 22140 9100 S 0.3 2.2 0:06.85 gnome-terminal- 63905 root 20 0 0 0 0 S 0.3 0.0 0:00.16 kworker/0:0 1 root 20 0 193940 3348 1276 S 0.0 0.3 0:07.61 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.04 kthreadd 4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
详细解释:
系统整体信息:
top - 20:53:55 up 7:19, 2 users, load average: 0.25, 0.09, 0.07top - 20:53:55 系统当前时间
up 7:19, 系统的运行时间。本机己经运行7小时19分钟
2 users, 当前登录了2个用户
load average: 0.25, 0.09, 0.07 系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是2核的,则这个数值超过2就是高负载
Tasks: 213 total, 2 running, 211 sleeping, 0 stopped, 0 zombieTasks: 213 total, 系统中的进程总数
2 running, 正在运行的进程数
211 sleeping, 睡眠的进程数
0 stopped, 正在停止的进程数
0 zombie 僵尸进程数。如果不是 0,则需要手工检查僵尸进程
%Cpu(s): 2.0 us, 1.0 sy, 0.0 ni, 96.7 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st%Cpu(s): 2.0 us, 用户模式占用的CPU 百分比
1.0 sy, 系统模式占用的CPU百分比
0.0 ni, 改变过优先级的用户进程占用的CPU 百分比
96.7 id, 空闲CPU占用的 CPU 百分比
0.0 wa, 等待输入/输出的进程占用的CPU 百分比
0.0 hi, 硬中断请求服务占用的CPU 百分比
0.3 si, 软中断请求服务占用的CPU 百分比
0.0 st st(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比
KiB Mem : 995640 total, 72840 free, 684452 used, 238348 buff/cache
KiB Mem : 995640 total, 物理内存的总量,单位为KB
72840 free, 空闲的物理内存数量。我们使用的是虚拟机,共分配了 628MB内存,所以只有53MB的空闲内存
684452 used, 己经使用的物理内存数量
238348 buff/cache 作为缓冲的内存数量
KiB Swap: 2097148 total, 1954812 free, 142336 used. 131848 avail Mem
KiB Swap: 2097148 total, 交换分区(虚拟内存)的总大小
1954812 free, 空闲交换分区的大小
142336 used. 已经使用的交换分区的大小
131848 avail Mem 可用内存
进程信息:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2333 chenjian 20 0 3035988 148220 19476 S 1.7 14.9 3:01.94 gnome-shell 64208 root 20 0 162100 2348 1592 R 0.7 0.2 0:00.09 top 747 root 20 0 295376 2024 1560 S 0.3 0.2 1:07.32 vmtoolsd 1419 root 20 0 334072 44032 27544 S 0.3 4.4 0:56.75 X 2649 chenjian 20 0 609896 10056 2336 S 0.3 1.0 0:58.83 vmtoolsd 60073 chenjian 20 0 698104 22140 9100 S 0.3 2.2 0:06.85 gnome-terminal- 63905 root 20 0 0 0 0 S 0.3 0.0 0:00.16 kworker/0:0 1 root 20 0 193940 3348 1276 S 0.0 0.3 0:07.61 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.04 kthreadd 4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H PID:进程的 ID。
USER:该进程所属的用户。
PR:优先级,数值越小优先级越高。
NI:优先级,数值越小优先级越高。
VIRT:该进程使用的虚拟内存的大小,单位为KB。
RES:该进程使用的物理内存的大小,单位为 KB。
SHR:共享内存大小,单位为KB。计算一个进程实际使用的内存 = 常驻内存(RES)- 共享内存(SHR)
S:进程状态。其中S 表示睡眠,R 表示运行
%CPU:该进程占用 CPU 的百分比。
%MEM:该进程占用内存的百分比。
TIME+:该进程共占用的 CPU时间。
COMMAND:进程名
获取CPU的总核心数
grep 'core id' /proc/cpuinfo |sort -u |wc -l
查看CPU使用率最高的前十个进程
1.以批处理模式,静态获取
top -b -n 1 | head -n 17
解析:
-b:表示以批处理模式运行,适合与其他命令结合使用。
-n 1:表示只刷新一次数据。
head -n 17:因为top命令的前几行是系统信息,所以从第8行开始才是进程列表,因此取前17行可以包含标题和前十个进程
2.使用ps命令结合awk或sort和head命令来获取前十个CPU使用率最高的进程:
ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head -n 11
解析:
ps -eo pid,ppid,cmd,%cpu:显示进程 ID (pid)、父进程 ID (ppid)、命令名称 (cmd) 和 CPU 使用率 (%cpu)。
--sort=-%cpu:按照 CPU 使用率从高到低排序。
head -n 11:由于第一行是标题,因此取前 11 行以包含标题和前十个进程。
或者
ps aux --sort=-%cpu | head -n 11
解析:
aux:选项a显示所有进程,u以用户为导向的格式显示,x显示没有控制终端的进程。
--sort=-%cpu:按照CPU使用率降序排序。
head -n 11:显示前11行,其中第一行为标题,接下来为前十个进程