linux笔记-029-日常运维-w查看系统负载,vmstat命令,top命令,sar命令,nload命令

时间:2022-05-22 17:03:56

w:查看系统负载
第一行:
当前系统时间,启动多长时间,目前登陆了几个用户,系统负载load average
第二和第三行:
当前登录的用户名(USER),这个用户登录的终端(TTY),从哪里登录(FROM),登录系统的时间(LOGIN@),空闲了多长时间(IDLE),JCPU/PCPU/WHAT
注:
网络登录:
pts/0,pts/1显示,本地登录:tty1-tty6显示
系统负载:
load average,三个数字分别表示1分钟,5分钟,15分钟。
理解为当前时间内使用这个CPU的活动进程,数值根据CPU的逻辑CPU个数来决定怎样的负载合适(如1个逻辑CPU,数值为1合适,以此类推),

[root@am-01:~#] w
23:48:39 up 8 days, 17:27, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts
/0 172.17.1.1 22:33 7.00s 0.58s 0.02s w

date:查看当前系统的时间

[root@am-01:~#] date
2018年 01月 16日 星期二
00:03:09 CST

查看当前主机有几颗CPU(逻辑CPU),0代表一颗

[root@am-01:~#] cat /proc/cpuinfo 
processor :
0

uptime:查看系统负载

[root@am-01:~#] uptime 
00:12:15 up 8 days, 17:50, 1 user, load average: 0.00, 0.01, 0.05

vmstat:查看CPU、内存、交换分区、磁盘、系统进程的状态
主要关注:r/b/swpd/si/so/bi/bo/us/wa
详解:
r,表示有多少个进程处于运行状态,无论是在运行还是在排队,都属于r状态,此列与CPU个数有关
b,表示被CPU以外的资源所阻断进程数,如被硬盘,内存,网络因素
swpd,swap空间,如果数字不断变化,证明交换分区和内存在频繁交换数据,说明内存不够了
si/so:针对内存,和swpd列有关,如果swpd列频繁变动,si/so也会频繁变动,si表示有多少K的数据从swap进入到内存中,so表示有多少k的数据从内存进入到swap中
bi/bo:和磁盘有关系,bi表示数据从磁盘出来进入到内存里去,bo表示数据从内存出来进去到磁盘中去,频繁变动证明磁盘在频繁读写
us:表示用户级别,用户占用的CPU资源为多少,百分比显示,数值不会超过100,一般长时间大于50,说明系统资源不太够了
sy:系统本身的进程、服务占用的CPU百分比
id:CPU空闲资源的百分比,us+sy+id=100
wa:和b有点类似,表示等待使用CPU的百分比,数值太大说明CPU不够用
每秒获取一次信息,按ctrl+c可以停止

[root@am-01:~#] vmstat 1
procs
-----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo
in cs us sy id wa st
1 0 0 684716 692 183588 0 0 0 0 11 11 0 0 100 0 0
0 0 0 684772 692 183588 0 0 0 0 29 33 0 0 100 0 0
0 0 0 684772 692 183588 0 0 0 0 17 18 0 0 100 0 0
0 0 0 684772 692 183588 0 0 0 0 34 34 0 0 100 0 0

每秒获取一次信息,只显示五次

[root@am-01:~#] vmstat 1 5
procs
-----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo
in cs us sy id wa st
1 0 0 684780 692 183596 0 0 0 0 11 11 0 0 100 0 0
0 0 0 684780 692 183596 0 0 0 0 33 32 0 0 100 0 0
0 0 0 684764 692 183596 0 0 0 0 42 50 0 0 100 0 0
0 0 0 684764 692 183596 0 0 0 0 19 16 0 0 100 0 0
0 0 0 684764 692 183596 0 0 0 0 19 13 0 0 100 0 0

top:查看进程使用资源的情况,默认3秒刷新一次
第一行:和w查看的信息一样
第二行:有多少个任务(total),正在运行的任务(running),休眠状态的任务(sleeping),停止的进程(stopped),僵尸进程(zombie,即主进程被意外终止,仅剩子进程)
第三列:us/sy/id/wa等信息,st表示被偷走的CPU信息(当主机做了虚拟化的时候有可能会被偷走一些CPU),us需要多关注,长时间在60以上会对硬件寿命有损耗,按数字1可以切换查看每个CPU的信息
第四列和第五列:物理内存和交换分区信息
列表中需要关注%CPU(默认按使用CPU的多少排序,按大写P为按CPU排序)/%MEN(按大写M可以按使用内存的多少排序)/RES(物理内存大小,单位是KB)/PID

[root@am-01:/tmp#] top
top
- 22:41:01 up 9 days, 16:19, 1 user, load average: 0.01, 0.02, 0.05
Tasks:
341 total, 1 running, 340 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem :
1003184 total, 683964 free, 134484 used, 184736 buff/cache
KiB Swap:
2097148 total, 2097148 free, 0 used. 694192 avail Mem

PID USER PR NI VIRT RES SHR S
%CPU %MEM TIME+ COMMAND
13501 root 20 0 130200 2012 1264 R 0.7 0.2 0:10.47 top
734 root 20 0 19288 1236 952 S 0.3 0.1 5:31.44 irqbalance
1 root 20 0 56680 6588 3908 S 0.0 0.7 0:10.53 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.55 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:03.76 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:00.33 migration/0

top -c:查看进程的命令的全局路径

[root@am-01:/tmp#] top -c
top
- 22:54:47 up 9 days, 16:33, 1 user, load average: 0.00, 0.01, 0.05
Tasks:
341 total, 1 running, 340 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem :
1003184 total, 683676 free, 134580 used, 184928 buff/cache
KiB Swap:
2097148 total, 2097148 free, 0 used. 693992 avail Mem

PID USER PR NI VIRT RES SHR S
%CPU %MEM TIME+ COMMAND 13513 root 20 0 130228 2112 1348 R 0.7 0.2 0:00.07 top -c
137 root 20 0 0 0 0 S 0.3 0.0 1:56.16 [rcu_sched]
139 root 20 0 0 0 0 S 0.3 0.0 1:58.78 [rcuos/1]
1 root 20 0 56680 6588 3908 S 0.0 0.7 0:10.53 /usr/lib/systemd/systemd --sw+
2 root 20 0 0 0 0 S 0.0 0.0 0:00.55 [kthreadd]
3 root 20 0 0 0 0 S 0.0 0.0 0:03.76 [ksoftirqd/0]
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:0H]
7 root rt 0 0 0 0 S 0.0 0.0 0:00.33 [migration/0]
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [rcu_bh]
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [rcuob/0]

top -bn1:把所有进程的信息一次性列出来,主要用来写脚本用

[root@am-01:/tmp#] top bn1
top
- 23:05:09 up 9 days, 16:43, 1 user, load average: 0.00, 0.01, 0.05
Tasks:
342 total, 1 running, 341 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 :
1003184 total, 683956 free, 134364 used, 184864 buff/cache
KiB Swap:
2097148 total, 2097148 free, 0 used. 694236 avail Mem

PID USER PR NI VIRT RES SHR S
%CPU %MEM TIME+ COMMAND
13536 root 20 0 130196 1840 1192 R 16.7 0.2 0:00.05 top
1 root 20 0 56680 6588 3908 S 0.0 0.7 0:10.55 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.55 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:03.77 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:00.33 migration/0

sar:监控系统状态,功能丰富且复杂,当不添加参数运行的时候会调用系统中保留的历史文件(/var/log/sa/sa*),sar每十分钟左右会抓取系统状态并生成文件保存到/var/log/sa目录下,该目录下有sa*和sar*两类文件,sa*不能直接cat,sar*可以直接cat
用yum安装包sysstat
使用sar -n DEV 1 3查看网卡状态,1表示每隔1秒输出一次,3表示一共输出3次,列表信息主要关注时间/网卡名称/接收到的数据包量(rxpck/s)/发送出去的数据包量(txpck/s)/接收的数据量(rxkB/s)/发送的数据量(txkB/s)
注:接收到的数据包量(rxpck/s)几千是正常的,上万就要注意了。

[root@am-01:/tmp#] sar -n DEV 1 3
Linux
3.10.0-229.el7.x86_64 (am-01) 2018年01月16日 _x86_64_ (2 CPU)

23时21分39秒 IFACE rxpck
/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
23时21分40秒 eno16777736
11.00 0.00 0.93 0.00 0.00 0.00 0.00
23时21分40秒 lo
0.00 0.00 0.00 0.00 0.00 0.00 0.00

23时21分40秒 IFACE rxpck
/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
23时21分41秒 eno16777736
12.00 1.00 0.98 0.40 0.00 0.00 0.00
23时21分41秒 lo
0.00 0.00 0.00 0.00 0.00 0.00 0.00

23时21分41秒 IFACE rxpck
/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
23时21分42秒 eno16777736
7.00 1.00 0.49 0.40 0.00 0.00 0.00
23时21分42秒 lo
0.00 0.00 0.00 0.00 0.00 0.00 0.00

平均时间: IFACE rxpck
/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
平均时间: eno16777736
10.00 0.67 0.80 0.27 0.00 0.00 0.00
平均时间: lo
0.00 0.00 0.00 0.00 0.00 0.00 0.00

查看跟网卡状态相关的历史数据,最多保留一个月的历史数据

[root@am-01:/tmp#] sar -n DEV -f /var/log/sa/sa16 
Linux
3.10.0-229.el7.x86_64 (am-01) 2018年01月16日 _x86_64_ (2 CPU)

23时20分01秒 IFACE rxpck
/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
23时30分01秒 eno16777736
7.12 0.15 0.55 0.02 0.00 0.00 0.00
23时30分01秒 lo
0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: eno16777736
7.12 0.15 0.55 0.02 0.00 0.00 0.00
平均时间: lo
0.00 0.00 0.00 0.00 0.00 0.00 0.00

查看系统负载,和w差不多

[root@am-01:/tmp#] sar -q 1 3
Linux
3.10.0-229.el7.x86_64 (am-01) 2018年01月16日 _x86_64_ (2 CPU)

23时41分29秒 runq
-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
23时41分30秒
0 359 0.00 0.01 0.05 0
23时41分31秒
0 359 0.00 0.01 0.05 0
23时41分32秒
0 359 0.00 0.01 0.05 0
平均时间:
0 359 0.00 0.01 0.05 0

查看磁盘状态,主要看读和写

[root@am-01:/tmp#] sar -b
Linux
3.10.0-229.el7.x86_64 (am-01) 2018年01月16日 _x86_64_ (2 CPU)

23时20分01秒 tps rtps wtps bread
/s bwrtn/s
23时30分01秒
0.06 0.00 0.06 0.00 0.45
23时40分01秒
0.06 0.00 0.06 0.00 0.43
平均时间:
0.06 0.00 0.06 0.00 0.44

nload:实时监控网卡流量
显示的信息分别为当前的值(curr)/平均值(avg)/最小值(min)/最大值(max),第一行显示了网卡的名字/IP地址/有几块网卡和当前是第几块网卡(按方向键可以切换网卡),按q退出,看有没有受到攻击,关注Incoming的流量,看带宽占用状况,关注Outgoing的流量

[root@am-01:~#] nload
linux笔记-029-日常运维-w查看系统负载,vmstat命令,top命令,sar命令,nload命令