vmstat/top/w查看ubuntu内存CPU使用情况以及参数解释

对于cpu负载的理解

  1. 系统load高不一定是性能有问题。 因为Load高也许是因为在进行cpu密集型的计算
  2. 系统Load高不一定是CPU能力问题或数量不够。
    因为Load高只是代表需要运行的队列累计过多了。但队列中的任务实际可能是耗Cpu的,也可能是耗i/0或者其他因素的。
  3. 系统长期Load高,解决办法不是一味地首先增加CPU
    因为Load只是表象,不是实质。增加CPU个别情况下会临时看到Load下降,但治标不治本。
  4. 在Load average 高的情况下需要鉴别系统瓶颈到底是CPU不足,还是io不够快造成或是内存不足造成的。

要想获得服务器的CPU负载情况,有下面几种命令:
w命令

[root@localhost ~]w
 12:12:41 up 167 days, 20:46,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.5      10:01    1.00s  0.11s  0.00s w
root     pts/2    192.168.1.5      10:19    1:47m  0.04s  0.04s -bash

uptime命令(一般首先会根据最后那个15分钟的load负载为准)

[root@localhost ~]uptime
 12:12:55 up 167 days, 20:46,  2 users,  load average: 0.00, 0.01, 0.05

top命令

[root@localhost ~]top
top - 12:13:22 up 167 days, 20:47,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 272 total,   1 running, 271 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 65759080 total, 58842616 free,   547908 used,  6368556 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used. 64264884 avail Mem

对于top命令下第一行的解释:
12:13:22:表示当前系统时间
167 days, 20:47:表示系统已经运行了167天20小时47分钟(在这期间没有重启过)
2 users — 当前有2个用户登录系统
load average: 0.00, 0.01, 0.05:表示load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况

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

对上面top命令下第三行cpu的状态的解释:

  • us(user cpu time):用户态使用的cpu时间比。该值较高时,说明用户进程消耗的 CPU
    时间比较多,比如,如果该值长期超过 50%,则需要对程序算法或代码等进行优化。
  • sy(system cpu time):系统态使用的cpu时间比。
  • ni(user nice cpu time):用做nice加权的进程分配的用户态cpu时间比
  • id(idle cpu time):空闲的cpu时间比。如果该值持续为0,同时sy是us的两倍,则通常说明系统则面临着 CPU
    资源的短缺。
  • wa(io wait cpu time):cpu等待磁盘写入完成时间。该值较高时,说明IO等待比较严重,这可能磁盘大量作随机访问造成的,也可能是磁盘性能出现了瓶颈。
  • hi(hardware irq):硬中断消耗时间
  • si(software irq):软中断消耗时间
  • st(steal time):虚拟机偷取时间

vmstat命令

[root@localhost ~]vmstat
procs -----------memory----------------  -----swap--   -----io---  ------system-  -------cpu-----
r  b      swpd   free    buff   cache    si   so    	bi    bo     in   cs      us sy id wa st
3  0      0      1639792 724280 4854236  0    0     	4     34     4    0       19 45 35  0  0

解释说明:

procs部分的解释

r 列表示运行等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu
b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。

memory部分的解释

swpd 切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常.
free 当前的空闲页面列表中内存数量(k表示)
buff 作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。
cache: 作为page cache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。

swap部分的解释
si 由内存进入内存交换区数量。
so由内存交换区进入内存数量。

IO部分的解释
bi块设备读入数据的总量读磁盘)(每秒kb)。
bo块设备写入数据的总量写磁盘)(每秒kb

system部分的解释
in 列表示在某一时间间隔中观测到的每秒设备中断数。 cs列表示每秒产生的上下文切换次数,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。

cpu部分的解释
us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序

sy 列显示了内核进程所花费的cpu时间的百分比。
这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足
wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者 磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。

id 列显示了cpu处在空闲状态的时间百分比

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值