七周一次课(3月19日)
10.1 使用w查看系统负载
10.2 vmstat命令
10.3 top命令
10.4 sar命令
10.5 nload命令
10.1 使用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处于空闲状态的时间百分比。
wa 表示I/O等待所占用CPU的时间百分比。
us+sy+id+wa=100
总结:
#vmstat命令可以判断出系统的瓶颈在哪儿。CPU不够、还是内存不够,或者是磁盘不够大。
10.3 top命令
#top
top - 16:03:57 up 44 days, 1:04, 1 user, load average: 0.02, 0.07, 0.05 Tasks: 157 total, 1 running, 156 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.0 id, 0.4 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 8073628 total, 2022424 free, 1375452 used, 4675752 buff/cache KiB Swap: 8388604 total, 8388604 free, 0 used. 5828776 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 16162 root 20 0 3199820 107396 13384 S 1.3 1.3 76:05.84 java 7557 root 20 0 0 0 0 S 1.0 0.0 0:06.83 kworker/0:0 16125 root 20 0 3064644 103568 13368 S 1.0 1.3 74:46.33 java 5454 root 20 0 123660 5028 1236 S 0.3 0.1 1:23.89 php-fpm 7653 root 20 0 157760 2224 1516 R 0.3 0.0 0:00.07 top 1 root 20 0 51632 3688 2312 S 0.0 0.0 0:48.16 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:01.87 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.91 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 8 root rt 0 0 0 0 S 0.0 0.0 0:00.38 migration/0 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 10 root 20 0 0 0 0 S 0.0 0.0 1:42.14 rcu_sched 11 root rt 0 0 0 0 S 0.0 0.0 1:34.40 watchdog/0 12 root rt 0 0 0 0 S 0.0 0.0 0:13.22 watchdog/1 13 root rt 0 0 0 0 S 0.0 0.0 0:00.59 migration/1 14 root 20 0 0 0 0 S 0.0 0.0 0:03.26 ksoftirqd/1 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H 17 root 20 0 0 0 0 S 0.0 0.0 0:26.33 kworker/u34:0 18 root rt 0 0 0 0 S 0.0 0.0 0:12.09 watchdog/2 19 root rt 0 0 0 0 S 0.0 0.0 0:00.64 migration/2 20 root 20 0 0 0 0 S 0.0 0.0 0:00.75 ksoftirqd/2 22 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/2:0H 23 root rt 0 0 0 0 S 0.0 0.0 0:13.05 watchdog/3 24 root rt 0 0 0 0 S 0.0 0.0 0:00.69 migration/3 25 root 20 0 0 0 0 S 0.0 0.0 0:00.61 ksoftirqd/3 27 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/3:0H 30 root 20 0 0 0 0 S 0.0 0.0 0:14.96 kdevtmpfs 31 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns 32 root 20 0 0 0 0 S 0.0 0.0 0:01.67 khungtaskd 33 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback 34 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd 35 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset
介绍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
安装之前需要安装epel-release
yum install -y epel-release yum install -y nload
#nload
Device ens33 [192.168.189.128] (1/2):
网卡名称 ip地址 其中一个网卡
按右箭头可以查看其他网卡的网络流量。输出结果分为两部分,Incoming为进入网卡的流量,Outgoing为网卡出去的流量,我们关注的是Curr哪行数据,其单位也可以动态自动调整,非常人性化,按q退出。