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

发布于 2018-01-30  352 次阅读


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