TOP命令是 比较常用的性能分析命令,可以看出服务器CPU 、负载、内存、磁盘、IO等数值,接下来就详细解读top命令
top命令
打开服务器终端,直接输入top,top命令中的数据显示的都是当前的实时数据
直接这样输入,回车即可
[sa@sa-200 ~]$ top
然后终端面板就会变成这样
top - 18:01:52 up 17 days, 2:10, 1 user, load average: 2.32, 2.07, 1.99
18:01:52 up: 是当前时间
17 days: 服务器运行了多长时间
1 user: 有几个终端用户
load average: 2.32, 2.07, 1.99:平均负载,分别代表1分钟、5分钟、15分钟的值
Tasks:系统启动了多少个任务(显示的都是进程)
Tasks: 767 total, 1 running, 766 sleeping, 0 stopped, 0 zombie
767 total:总的任务进程
1 running:正在进行的任务进程
766 sleeping:休眠的任务
stopped:停止运行的任务
0 zombie:僵尸任务
这些值与底下的S列相对应
此时如果在面板按下大写的“H”,进程就会变成线程
CPU的使用率
%Cpu(s): 10.2 us, 15.5 sy, 0.0 ni, 57.4 id, 16.2 wa, 0.4 hi, 0.4 si, 0.0 st
%Cpu(s):所有cpu的总使用率
us:用户态cpu使用率
sy:系统态cpu使用率
ni:进程切换cpu的总使用率(优先级切换)
id:空闲的cpu的总时间占比
wa:总cpu等待率
hi:总cpu硬中断率
si:总cpu软中断率
st:管理cpu使用率
按下数字 1 ,显示每个cpu的使用情况
内存的使用情况
按下E进行单位切换,按下e任务列表中的单位信息会进行切换,按下m显示内存的使用率
MiB Mem : 15758.3 total, 180.7 free, 6491.7 used, 9085.9 buff/cache
15758.3 total:总内存大小
free:空闲的内存大小
used:已经使用的内存大小
buff:缓冲区(缓冲区是磁盘虚拟出来,加快磁盘的读写速度)
cache:缓存(缓存是内存虚拟出来的,加快内存的读写速度)
交换分区(是跟内存来交换,把内存中的数据临时存放到一个地方,也就是当内存中的空间不足的时候,临时存放内存中的数据)
Swap是由磁盘虚拟出来的
TiB Swap: 0.0 total, 0.0 free, 0.0 used. 0.0 avail Mem
total:总的交换分区大小
free:空闲的
used:使用中的
任务列表
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3777541 root 20 0 0.9g 0.2g 0.0g S 30.3 1.2 2895:25 tuned
424735 sada 20 0 0.2g 0.0g 0.0g S 21.8 0.1 0:15.33 sendmail
7910 systemd+ 20 0 3.5g 0.5g 0.0g S 9.8 2.9 1121:50 mysqld
PID:进程ID/线程ID/任务ID(一个进程中至少有一个线程)
USED:进程或者线程归属的用户,也可以理解为由那个账户启动的
PR:系统态优先级,区间范围是【20,0】,20是优先级最高的,如果这个列表出现rt,指的是一个实时进程
NI:用户态优先级,数字越小,优先级越高,区间为【-20,19】
S:与上面的Tasks相对应
%CPU:进程使用了多少cpu,这个值会存在超过100的情况,如果当前只有1个cpu,100说明完全使用,如果有两个或者两个以上的cpu,就会超过100的情况
%MEM:进程使用了多少内存(内存不存在超过100的情况)
按一下b+n,再按一下4回车,会显示当前cpu使用最高的4个任务,如果要还原再按n+0