2018年5月4日任务
10.1 使用w查看系统负载
10.2 vmstat命令
10.3 top命令
10.4 sar命令
10.5 nload命令

image.png

使用w查看系统负载


监控系统状态


w/ uptime(一般使用w看) 查看系统负载

image.png

第一行的显示:

时间   系统启动时长  多少用户登陆  系统负载: 一分钟 五分钟 十五分钟的负载

第二行的显示:

用户    终端  来自     登陆时间   IDLE空闲了多久


如果远程会显示来自哪,如果本地则没有,tty也会有变化

image.png

最关键的是load average后的第一个数字,这个代表了一分钟内的负载。这个值不大于当前cpu processor就说明够用,否则就是说明当前有进程

未被分配到资源,处于等待的状态。


如何查看cpu信息


cat  /proc/cpuinfo

image.png



vmstat命令


当系统负载大于cpu的时候,就需要查看什么原因导致了cpu不够用,这个时候就需要vmstat命令了。

image.png

vmstat 1 表示每一秒显示一次可以看出来变化  vmstat 1 5 表示每一秒显示一次 只显示五次

image.png

vmstat 1 10 显示十次1秒 

image.png

r ---run 表示有多少个进程处于运行的状态。这里说的运行的进程包括排队中的进程

b--- block 被堵塞的进程 

swpd ---交换分区,内存不够的时候会放进去。如果这个值在变,说明内存不够用了,内存和交换空间在不停交换数据。

si  in有多少k的数据从swap进入到内存中 单位是k

so  out有多少k的数据从内存到swap中 单位是k

bi 从磁盘里出来进入到内存里去,就是读的数据量

bo 从内存写到此盘里,就是写的数据。

us 表示用户级别的 用户占用,通常表示用户下的服务,这个数字不会超过100

sy  表示系统本身的进程服务等占用cpu的百分比

id 是空闲 所以 us sy id wa相加应该是100

wa wait 跟b有点像, 有多少进程在等待cpu


所以可以通过vmstat判断出来系统的问题是出在什么地方



top命令

w----查系统负载

vmstat --查看系统的瓶颈

top可以用来查看具体进程,看是什么进程导致的原因。 3秒显示一次,动态显示。

st steal 被偷走的cpu。如果服务器做了虚拟化,有一些子虚拟机有可能会偷走一部分的cpu

密切关注us的值,这个值始终太高的话对cpu非常不好。

大部分情况下,us很高的情况下,系统负载会很高的。

接下来是内存和交换分区的使用情况。第一行通常被关注的比较多。 

默认按照cpu百分百排序,使用的多的在前面。如果想查看按照内存排序就按M 显示

RES是物理内存大小,单位是KB,这个值除以总的内存物理大小就是后面的%MEM的值,也就是占了物理内存的百分比。


image.png

image.png

按P回到按cpu大小排序

按数字1 列出指定的cpu使用情况

按字母q退出top

top -c显示具体的命令对应的进程

image.png


top -bn1将所有进程一次性列出来,写shell脚本的时候可能会用到

image.png


另外注意pid,可以用kill pid 杀掉进程



sar命令

image.png

yum install sysstat


sar如果后面不加选项,会默认去调用系统里的log历史文件。sar每十分钟系统状态保存一遍到如下目录。sa05,这个数字是根据当天的日期来写的。5号就是sa05。最多保留一个月的历史记录数据。

在这个目录下也会有一个sar05的文件,第二天生成。区别是sa05是二进制文件不能被cat,只能用-f来查看,但是sar05是可cat的。

image.png

sar -n DEV 1 10

显示网卡的流量, 1秒一次,共10次。

image.png

解释一下

rxpck 是receive的数据包 单位是个

txpck 是send的数据包

rxkb 是接受的数据量 单位是kb

txkb 是发出的数据量 

eg

对网卡进行***,对网卡发出大量的数据包,很大的话网卡无法承担造成网络堵塞。

比如100M带宽,实际是12.8m每秒传输的速度。所以要关注网卡流量是多少,正常情况下,包的数量几千还算合适,上万就不正常了。当然要借助抓包工具来具体判断。


如何查看历史数据?

sar -n DEV -f /var/log/sa/文件名

image.png


sar -q 

查看系统负载 更多是后面接 -f 以及具体某天的文件来进行查看当时的负载

sar -q -f /var/log/sa/sa05

image.png


sar -b 查看磁盘 主要看读写

image.png



nload命令

动态显示网卡实时数据传输情况,左右键可以切换网卡

image.png

image.png

通常所说的带宽指的都是出去的带宽。要根据带宽和出去的值的对比,而如果是遭受网卡***则进来的很大。

image.png


总结:

w 查看系统负载

vmstat 查看包括CPU内存虚拟磁盘交换分区以及io 系统进程等信息

top查看具体系统进程以及资源使用情况

sar是全面分析系统状态的命令主要可以查看网卡状态。

nload是更形象的查看网卡的状态。