10.1 使用w查看系统负载
介绍
W命令
#W
[root@centos7 sed]# w
14:22:44 up 4:29, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.189.1 09:53 4.00s 0.59s 0.02s w
第一段内容分别是
系统时间,登录时长,登录用户(登录用户信息在第二行),
第二段
登录用户信息,
TTY如果是网络登录,会用pts/0显示 。如果是本机登录,则会用tty1显示。
load average: 0.00, 0.01, 0.05,此项是关键,系统负载。
负载三段数值0.00, 0.01, 0.05,对应的分别是1分钟,5分钟,15分钟的负载值。
负载值的大小取决于CPU。数值表示单位时间段内使用CPU的活动的进程有多少个,是一个平均值。
查看cpu信息
[root@centos7 sed]# cat /proc/cpuinfo
负载值最理想的值是1(processor为0的情况下).
第一段负载值是最关键的,最能体现到系统负载情况。
LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.189.1 09:53 4.00s 0.59s 0.02s w
10.2 vmstat命令
当负载值大于逻辑CPU核数,此时表示CPU不够用了。
#vmstat 命令监控系统的状态
[root@centos7 sed]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 739100 2076 140788 0 0 6 1 45 54 0 0 100 0 0
用法
#vmstat 1 动态显示进程情况,每一秒输出一次。直到按ctrl+c结束
#vmstat 1 5 动态显示进程,每一秒显示一次,只显示5次,自动结束。
vmstat只需要关注
r run 表示有多少个进程处于run状态,运行或等待CPU时间片的进程数。 假如系统有1个CPU,但是有10个进程想使用这个CPU,那么10个当中只有一个进程能使用此CPU,其他进程都需要排队,在排队的进程就是出于run状态了。所以r为2的意思是有2个进程在排队。此过程会进行循环。
b block 此进程被CPU以外的资源(硬盘、网络、内存、I/O)阻断了。b值表示有多少个进程在等待。
swapd 当物理内存使用不足的情况话,系统会把一部分空间拿出来,临时放到swap空间上去。
如果此数值不稳定,表示swap分区和内存在频繁交换数据,这种情况就是内存不够。
si 与swpd值有关联。有多少kb的数据从swap写入到内存中。i=in 进入到内存去。
so 与swpd值有关联。有多少kb的数据从内存里出来的。o=out 从内存里出来的。
磁盘
bi 从磁盘读取数据的量。进入到内存里去。读的数据量。
bo 从磁盘写入数据的量。写的数据量
us 显示用户下所花费CPU的时间百分比。数值一般不会超过100.长时间大于50,说明系统资源不够。
sy 显示系统花费CPU的时间百分比。
id IDLE,空闲。表示CPU处于空闲状态的时间百分比。
us+sy+id+wa=100
wa 表示I/O等待所占用CPU的时间百分比。
总结:#vmstat命令可以判断出系统的瓶颈在哪儿。CPU不够、还是内存不够,或者是磁盘不够大。
10.3 top命令
#top
top - 16:39:16 up 6:46, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 86 total, 1 running, 85 sleeping, 0 stopped, 0 zombie
%Cpu(s): 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 : 1008152 total, 738396 free, 126572 used, 143184 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 719984 avail Mem
介绍tasks
total 总共
running 相当于vmstat的r
sleeping 休眠,暂时休息的意思。
stopped 已停止
zombie 僵尸进程
关注点
us 60%以上会对CPU比较伤
物理内存使用情况
KiB Mem : 1008152 total, 738396 free, 126572 used, 143184 buff/cache
交换分区使用情况
KiB Swap: 2097148 total, 2097148 free, 0 used. 719984 avail Mem
用top重点查看的还是下面的进程使用系统资源的详细状况,其中需要%CPU、%MEM和COMMAND这几项所代表的意义。RES这一项为进程所占的内存大小,而%MEM这一项为使用内存的百分比.
在top状态下,按shift+m键可以按照内存使用大小排序,切换回CPU排序,按P。按数字1可以列出所有核CPU的使用状态,按q键可以退出top。
默认情况下,是按%CPU大小排序,由高到底。
%CPU CPU使用率,
%MEM 指内存,
RES物理内存大小,单位k。在计算机计算容量时 系统往往不会精准至1024,往往都是以1000来计算。
q退出,
#top -c 可以查看具体命令,全局路径,详细
#top -bn1 静态显示所有页面,适用于写脚本。
#kill+pid 能杀死进程
top -bn1静态快照
按数字1显示所有CPU核心的资源使用
top -c 更加详细的command显示
10.4 sar命令
sar命令很强大,它可以监控系统几乎所有资源的状态,比如平均负载、网卡流量、磁盘状态、内存使用等。与其他系统状态监控工具不同,它可以打印历史信息,可以显示当天从零点开始到当前时刻的系统状态信息。
安装sar命令
# yum install -y sysstat
使用#sar命令 最好加选项
查看网卡流量
#sar -n DEV 1 5 一秒钟输出一次,一共输出五次
[root@centos7 ~]# sar -n DEV 1 5
举例
17时57分15秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
17时57分16秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17时57分16秒 ens33 1.02 1.02 0.06 0.19 0.00 0.00 0.00
第一列 时间
第二列 IFACE 设备
第三列 rxpck/s,每秒进入收取的包的数量。r receive
第四列 txpck/s,每秒发送出去的包的数量。t transfor
第五 rxkB/s,每秒收取的数据量,单位kb
第六 txkB/s,每秒传送的数据量,单位kb
关注
rxpck/s 如果大于10000,需要关注了,有可能被攻击了。
rxkB/s 如果大于5000000,需要关注
指定文件查看 -f
/var/log/sa/sa19这文件的定义是根据文件生成的当天时间,例如在2018年3月19日生成的,则命名会以sa19命名。
/var/log/sa/下的文件 最多保留一个月。
!!!!其实还有一个文件是sar19,sa19与sar19区别在。
sa19是二进制文件,不可以#cat等查看命令加载查看它的信息,只能用#sar相关命令去加载它的数据。
sar19是可以直接#cat的。
#sar -q用法
[root@centos7 ~]# sar -q
Linux 3.10.0-693.el7.x86_64 (centos7.4-01) 2018年03月19日 _x86_64_ (1 CPU)
17时50分01秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
18时00分01秒 1 104 0.00 0.01 0.05 0
18时10分01秒 2 104 0.01 0.02 0.05 0
18时20分01秒 1 104 0.00 0.01 0.05 0
18时30分01秒 1 105 0.00 0.01 0.05 0
平均时间: 1 104 0.00 0.01 0.05 0
#sar -q 有助于我们查看服务器过去某个时间的负载状况。
10.5 nload命令
安装nload
1.安装之前需要安装epel-release
2.yum install -y nload
#nload
Device ens33 [192.168.189.128] (1/2):
网卡名称 ip地址 其中一个网卡
按右箭头可以查看其他网卡的网络流量。输出结果分为两部分,Incoming为进入网卡的流量,Outgoing为网卡出去的流量,我们关注的是Curr哪行数据,其单位也可以动态自动调整,非常人性化,按q退出。
10.1-10.5 w查看系统负载 vmstat , top, sar, nload
原文地址:http://blog.51cto.com/13578154/2088684