10月23日任务
10.1 使用w查看系统负载
10.2 vmstat命令10.3 top命令10.4 sar命令10.5 nload命令使用w查看系统负载
监控系统状态
w / uptime(一般使用w看) 查看系统负载
第一行的显示:
时间 系统启动时长 多少用户登陆 系统cpu负载: 一分钟 五分钟 十五分钟的负载
第二行的显示:
用户 终端 来自 登陆时间 IDLE空闲了多久
如果远程会显示来自哪,如果本地则没有,tty也会有变化 pts/0 pts/1表示的是远程登录 如果是本机登录的话是 tty
最关键的是load average后的第一个数字,这个代表了一分钟内的负载。这个值不大于当前cpu processor就说明够用,否则就是说明当前有进程
未被分配到资源,处于等待的状态。
如何查看cpu信息
cat /proc/cpuinfo 处理器0 表示有1颗
vmstat命令
当系统负载大于cpu的时候,就需要查看什么原因导致了cpu不够用,这个时候就需要vmstat命令了。
vmstat 1 表示每一秒显示一次可以看出来变化 vmstat 1 5 表示每一秒显示一次 只显示五次
vmstat 1 10 显示十次1秒
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的值,也就是占了物理内存的百分比。
按P回到按cpu大小%排序
按数字1 列出指定的cpu使用情况
按字母q退出top
top -c显示具体的命令对应的进程
top -bn1将所有进程一次性列出来,写shell脚本的时候可能会用到
另外注意pid,可以用kill pid 杀掉进程
sar命令
yum install sysstat
sar如果不加参数或者选项 会报错
sar如果后面不加选项,会默认去调用系统里的log历史文件。sar每十分钟系统状态保存一遍到如下目录。sa05,这个数字是根据当天的日期来写的。5号就是sa05。最多保留一个月的历史记录数据。
在这个目录下也会有一个sar05的文件,第二天生成。区别是sa05是二进制文件不能被cat,只能用-f来查看,但是sar05是可cat的。
sar -n DEV 1 10
显示网卡的流量, 1秒一次,共10次。
解释一下
rxpck 是receive的数据包 单位是个
txpck 是send的数据包
rxkb 是接受的数据量 单位是kb
txkb 是发出的数据量
eg
对网卡进行***,对网卡发出大量的数据包,很大的话网卡无法承担造成网络堵塞。
比如100M带宽,实际是12.8m每秒传输的速度。所以要关注网卡流量是多少,正常情况下,包的数量几千还算合适,上万就不正常了。当然要借助抓包工具来具体判断。
如何查看历史数据?sa文件只能通过这种方式打开
sar -n DEV -f /var/log/sa/文件名
sar -q
查看系统负载 更多是后面接 -f 以及具体某天的文件来进行查看当时的负载
sar -q -f /var/log/sa/sa05
sar -b 查看磁盘 主要看读写
nload命令
动态显示网卡实时数据传输情况,左右键可以切换网卡
通常所说的带宽指的都是出去的带宽。要根据带宽和出去的值的对比,而如果是遭受网卡***则进来的很大。
总结:
w 查看系统负载
vmstat 查看包括CPU内存虚拟磁盘交换分区以及io 系统进程等信息
top查看具体系统进程以及资源使用情况
sar是全面分析系统状态的命令主要可以查看网卡状态。
nload是更形象的查看网卡的状态。