linux 命令学习「查看系统负载」

589 阅读6分钟

uptime

查看“系统的平均负荷”

13:47:38 up 476 days, 19:20, 2 users, load average: 0.01, 0.04, 0.05

3个数字为:1分钟、5分钟、15分钟内系统的平均负荷

当CPU完全空闲的时候,平均负荷为0;当CPU工作量饱和的时候,平均负荷为1。

"load average"的值越低,比如等于0.2或0.3,就说明电脑的工作量越小,系统负荷比较轻。

系统负荷为0,意味着大桥上一辆车也没有。

系统负荷为0.5,意味着大桥一半的路段有车。

系统负荷为1.0,意味着大桥的所有路段都有车,也就是说大桥已经"满"了。但是必须注意的是,直到此时大桥还是能顺畅通行的。

系统负荷为1.7,意味着车辆太多了,大桥已经被占满了(100%),后面等着上桥的车辆为桥面车辆的70%。

以此类推,系统负荷2.0,意味着等待上桥的车辆与桥面的车辆一样多;

系统负荷3.0,意味着等待上桥的车辆是桥面车辆的2倍。

总之,当系统负荷大于1,后面的车辆就必须等待了;系统负荷越大,过桥就必须等得越久。

2个CPU表明系统负荷可以达到2.0,此时每个CPU都达到100%的工作量。推广开来,n个CPU的电脑,可接受的系统负荷最大为n.0

查看CPU核数

"grep -c 'model name' /proc/cpuinfo"

top

top - 10:58:11 up 476 days, 16:31,  2 users,  load average: 0.23, 0.14, 0.08
Tasks: 139 total,   1 running, 138 sleeping,   0 stopped,   0 zombie
%Cpu(s):  3.2 us,  0.6 sy,  0.0 ni, 96.1 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem :  8009252 total,   242780 free,  6426876 used,  1339596 buff/cache
KiB Swap:  4190204 total,  3725584 free,   464620 used.  1169264 avail Mem  

PID    USER      PR   NI    VIRT      RES    SHR S    %CPU  %MEM     TIME+      COMMAND  
1643   xhcp_pro  20   0     5030572   1.5g   15064 S   9.6  19.3     10:14.04   java 
25589  xhcp_pro  20   0     6061800   1.1g   10568 S   3.0  14.7     18:41.26   java

应该关注哪些信息

系统负载 load average

cpu使用率 3.2 us

空闲内存 242780 free (单位kb)

前两个进程使用的内存RES 和CPU

任务队列信息

top - 10:58:11 (当前系统时间) up 476 days, 16:31 {系统已经运行了476天16小时31分钟(在这期间系统没有重启过的)} , 2 users (当前有2个用户登录系统), load average: 0.23 (1分钟负载情况) , 0.14 (5分钟负载情况), 0.08(15分钟的负载情况

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

任务(进程)

Tasks: 139 total(共有139个进程), 1 running(运行中的有1个), 138 sleeping (休眠,挂起的进程数), 0 stopped (停止), 0 zombie (僵尸进程)

cpu状态信息

%Cpu(s): 3.2 us ( us, user : time running un-niced user processes用户空间占用CPU的百分比), 0.6 sy ( system : time running kernel processes ,内核空间占用CPU的百分比), 0.0 ni(nice : time running niced user processes改变过优先级的进程占用CPU的百分比), 96.1 id (空闲CPU百分比), 0.0 wa ( IO-wait : time waiting for I/O completionIO等待占用CPU的百分比), 0.0 hi (硬中断(time spent servicing hardware interrupts, Hardware IRQ)占用CPU的百分比), 0.2 si (软中断(time spent servicing software interrupts)占用CPU的百分比), 0.0 st (实时)

内存状态

KiB Mem : 8009252 total (物理内存总量), 242780 free (空闲内存总量), 6426876 used(使用中的内存总量), 1339596 buff/cache( 缓存的内存量)

swap交换分区信息

KiB Swap: 4190204 total (交换区总量) , 3725584 free (空闲交换区总量), 464620 used(使用的交换区总量). 1169264 avail Mem (可用交换区总量)

各进程(任务)的状态监控

PID (进程id) USER (进程所有者) PR(进程优先级) NI ( nice值。负值表示高优先级,正值表示低优先级) VIRT ( 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES) RES(进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA) SHR(共享内存大小,单位kb) S (进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程) %CPU (上次更新到现在的CPU时间占用百分比,所有用户进程占用整个cpu的平均值,进程占用一个核的百分比) %MEM ( 进程使用的物理内存百分比) TIME+ (进程使用的CPU时间总计,单位1/100秒) COMMAND (进程名称(命令名/命令行)

top后按1

查看各cpu的状态

top - 11:49:50 up 476 days, 17:23,  2 users,  load average: 0.07, 0.10, 0.07 
Tasks: 139 total,   1 running, 138 sleeping,   0 stopped,   0 zombie 
%Cpu0  :  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
%Cpu1  :  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
%Cpu2  :  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
%Cpu3  :  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
KiB Mem :  8009252 total,   240396 free,  6421060 used,  1347796 buff/cache  
KiB Swap:  4190204 total,  3725584 free,   464620 used.  1175076 avail Mem  
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND  
1643 xhcp_pro  20   0 5026116   1.5g  10608 S   0.7 19.2  10:46.74 java 
23262 xhcp_pro  20   0 3950292   1.3g  10120 S   0.7 16.9 399:09.18 java   
25589 xhcp_pro  20   0 6061800   1.1g  10568 S   0.7 14.7  18:59.23 java 
敲击键盘“b”

打开关闭加亮效果

敲击键盘“x”

打开/关闭排序列的加亮效果

按“%CPU”排序

按shift+> 和 shift+<

可以向右或左改变排序列

按f

改变基本视图中的显示字段

按'd' 或者 空格键 切换显示, 使用's' 设置排序字段. 使用 'q' 或Esc退出编辑。

按q退出

参考

linux命令 mp.weixin.qq.com/s/7bSwKiPmt…

阮一峰老师的理解Linux系统负荷 www.ruanyifeng.com/blog/2011/0…

linux怎样使用top命令查看系统状态jingyan.baidu.com/article/4d5…

Linux Top 命令解析(详细)blog.csdn.net/zqtsx/artic…