- 10.1 使用w查看系统负载
- 10.2 vmstat命令
- 10.3 top命令
- 10.4 sar命令
- 10.5 nload命令



# 10.1 使用w查看系统负载
![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170829/230935727.png?p_w_picpathslim)
- w命令
```
[root@aminglinux-01 ~]# w
 23:10:04 up  2:17,  2 users,  load average: 0.01, 0.02, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      20:52    2:17m  0.06s  0.06s -bash
root     pts/0    192.168.202.1    20:53    4.00s  0.16s  0.03s w
[root@aminglinux-01 ~]#
[root@aminglinux-01 ~]# date
2017年 08月 29日 星期二 23:11:10 CST
[root@aminglinux-01 ~]# 

```
- w命令后分为几部分
1. 首先是一个当前系统的时间,,可以用date命令查看系统时间
2. 然后是系统启动的时间,我这里是2:17
3. 目前登录了几个用户,如果是网络登录,就是pts/0 pts/1...这个使我们的远程工具xshell登录的,
4. 如果是终端登录就是TTY 

- load average: 0.01, 0.02, 0.05
1. 这个表示系统负载,有什么含义呢,这有三个数字,这三个数字分别表示1分钟、5分钟、15分钟这个时间段内系统的负载值是多少,是一个数值
2. 这个数值有什么含义呢?表示单位时间段内使用cpu的活动的进程有多少个。 
3. 第一个数值是 1分钟内使用cpu的活动的进程有多少个,这是一个平均值,这个数值不一定是整数,可以是零点几 也可以是100多
4. 当前这个数值多少算多,多少合适?比如当前是0,说明系统没有负载,没有负载就说明没有活动进程,说明系统处于非常空闲的一个状态,这种状态对于服务器、linux操作系统来讲就比较浪费,它在空跑
5. 那这个数值说明时候最好 最理想的状态? 要看有几颗cpu(逻辑cpu)
6. 服务器有很多类型的cpu, 有inter、 AMD   都会有几颗cpu ,每颗cpu上会有很多逻辑cpu

- 怎么查看系统有多少cpu?
- 使用命令cat /proc/cpuinfo 查看

```
[root@aminglinux-01 ~]# cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 37
model name	: Intel(R) Core(TM) i5 CPU       M 460  @ 2.53GHz
stepping	: 5
microcode	: 0x2
cpu MHz		: 2659.510
cache size	: 3072 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni ssse3 cx16 sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer hypervisor lahf_lm ida arat dtherm tsc_adjust
bogomips	: 5320.13
clflush size	: 64
cache_alignment	: 64
address sizes	: 42 bits physical, 48 bits virtual
power management:

[root@aminglinux-01 ~]# 
```
- 看这个数字 processor	: 0    
- 如果是0就意味着这上面cpu只有1颗  
- [x] 这里数字 几颗都是逻辑cpu
- 如果是1,那就有2颗
- 如果是2,那就有3颗
- 如果是39,那就有40颗



-现在咱们一颗物理cpu上可以有俩核,每一核上又可以有多个逻辑cpu ,非常的复杂,这里不用关心有几颗物理cpu,每个cpu上有几核,只需要关心这个数字就行
- load average: 0.01
-现在我这个虚拟机上 只有1颗cpu ,数字为1的时候是最理想的,也不空闲,也没什么压力


- processor	: 0  这个数字最大是7
- 假如说我这里processor	: 7  是7,那就说明有8颗cpu,这个时候负载是多少合适呢?load average 这个数字不高于8就没问题,当cpu在工作的时候,只要保证每一个cpu又一个进程在占用它 就没问题,就能工作过来,就不会累,没有排队这一说
- 如果现在负载是9 这个值是9 ,就说明8颗cpu不够用了,总有一个进程处于等待状态,等待cpu给它分配资源,
- 同理那个是5分钟有多少个进程,15分钟有多少个进程,我们比较关心那个1分钟的。


USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      20:52    2:17m  0.06s  0.06s -bash
root     pts/0    192.168.202.1    20:53    4.00s  0.16s  0.03s w

- USER 显示登录用户    
- TTY表示终端   
- pts/0 pts/1远程登录  
- FROM 表示来自哪里  这里来自192.168.202.1
- 下面就是使用cpu的时间 以及使用的什么命令


-uptime 这个命令 和 w命令结果是一样的 ,用w看就可以了
```
[root@aminglinux-01 ~]# uptime
 23:46:58 up  2:54,  2 users,  load average: 0.00, 0.01, 0.05
[root@aminglinux-01 ~]# w
 23:47:00 up  2:54,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      20:52    2:54m  0.06s  0.06s -bash
root     pts/0    192.168.202.1    20:53    4.00s  0.15s  0.01s w
[root@aminglinux-01 ~]# 
```




# 10.2 vmstat命令

- 当系统负载值偏高的时候,比如数值大于cpu核数了,说明cpu不够用,是什么原因导致cpu不够用,这时候进程都在干什么,都有哪些任务在使用cpu,更像进一步的查看系统的瓶颈在哪里,
- 有这一个命令,vmstat
- 它可以查看到包括你的cpu 内存 虚拟磁盘,交换分区,io也就是你的磁盘 包括系统进程,等等相关的东西 

- vmstat 1  
- 数字1 表示每1秒钟 显示一次 动态显示 ,感觉差不多的时候   按ctrl c 终止掉
```
[root@aminglinux-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
 2  0      0 683716    876 183800    0    0    13     1   29   47  0  0 100  0  0
 0  0      0 683716    876 183832    0    0     0     0   32   43  0  0 100  0  0
 0  0      0 683716    876 183832    0    0     0     0   24   35  0  0 100  0  0
 0  0      0 683716    876 183832    0    0     0     0   31   38  0  0 100  0  0
 0  0      0 683716    876 183832    0    0     0     0   24   32  0  0 100  0  0
 0  0      0 683716    876 183832    0    0     0     0   32   37  0  1 99  0  0
 0  0      0 683716    876 183832    0    0     0     0   25   36  0  0 100  0  0
 0  0      0 683716    876 183832    0    0     0     0   30   38  0  0 100  0  0
 0  0      0 683716    876 183832    0    0     0     0   21   29  0  0 100  0  0
 0  0      0 683716    876 183832    0    0     0     0   27   38  0  0 100  0  0
^C
[root@aminglinux-01 ~]# 
```
- vmstat 1 5 表示每1秒钟显示一次 ,只需要显示5次  自动结束
```
[root@aminglinux-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
 2  0      0 683716    876 183832    0    0    13     1   29   47  0  0 100  0  0
 0  0      0 683700    876 183832    0    0     0     0   25   37  0  0 100  0  0
 0  0      0 683700    876 183832    0    0     0     0   31   40  0  0 100  0  0
 0  0      0 683700    876 183832    0    0     0     0   24   30  0  0 100  0  0
 0  0      0 683700    876 183832    0    0     0     0   29   40  0  0 100  0  0
[root@aminglinux-01 ~]# 
```

- [ ] - 上面这些信息,只需要关注这几点 r 、b、swpd、 si、 so、bi、bo、us、sy、wa
- 1. r 英文单词 run 简写,表示有多少个进程处于run的状态,大家不要误认为等待cpu时间片意味着这个进程没有运行,实际上某一时刻1个cpu只能有一个进程占用,其他进程只能排着队等着,此时这些排队的等待cpu资源的进程依然是运行状态,该数值如果长期处于大于服务器cpu的个数,说明cpu资源不够用了。

- b block:表示等待资源的进程数 ,进程被cpu以外的资源,硬盘啊,网络啊,给阻断了,处于一个等待状态,卡死了,b  block状态,被堵死了,有多少个进程在等待在block,

- swpd   之前将磁盘分区,又一个swap交换分区,当内存不太够的时候,系统可以把内存里的一部分空间拿出来临时放到swap空间里去,什么时候才会放呢? 内存不够的时候,所以要关注下这个数字,如果这个数字不变还好,没关系,如果这个数字一直在变化,一会儿多了 一会少了,说明交换分区和内存在频繁的交换分区,只有一个说明 一个结果,你的内存不够了

- si so ,这个和sapd有关联的,如果swpd在频繁的改变,si so 肯定存在数字变更的 
- si 有多少个数据 块 单位kb ,有多少kb的数据从swap 进入到内存中,
- so 有多少kb的数据从从内存里出来 进入到swap里去

- bi bo 这个和磁盘有关联的,如果俩个数据很大,说明磁盘在频繁的读写
- bi 从磁盘里出来进入到内存里去  表示从块设备读取数据的量 (读磁盘) 单位kb
- bo 从内存出来进入刅磁盘里去   表示从块设备 写入数据的量  (写磁盘) 单位kb
- [ ] 这个磁盘io 想比较cpu 内存也好 他是很慢的,如果有那么多数据频繁的读写,肯定会造成b列 增加,因为它有很多进程在等待你的磁盘,这是必然的。

- us 表示用户级别的,  操作系统不可能仅仅是运行一个系统,比如说跑了一个服务,一个网站mysql 它占了cpu的一部分资源,体现在us上,这个数字不会超过100 一共就100% ,us表示用户所占用cpu的百分比
- sy 表示系统本身 进程、服务 占用cpu的百分比
- id 表示cpu处于空闲状态的百分比 
1.us 加  sy 加 id  = 100 三个数字百分比等于100%
- wa wait 表示等待cpu的百分比  有多少个进程 在等待cpu ,如果这一列很大,说明cpu不够用




# 10.3 top命令
![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170831/211159026.png?p_w_picpathslim)

- top命令
- top命令用于动态监控进程所占的系统资源,每隔3秒变一次
```
[root@aminglinux-01 ~]# top
top - 21:13:13 up 9 min,  2 users,  load average: 0.00, 0.03, 0.05
Tasks:  89 total,   2 running,  87 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 :   999936 total,   716352 free,   114432 used,   169152 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   709324 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                        
  2083 root      20   0  142972   5188   3924 S  0.7  0.5   0:00.50 sshd                                                                           
   494 root      20   0  302636   6144   4788 S  0.3  0.6   0:00.87 vmtoolsd                                                                       
  2111 root      20   0  157576   2140   1532 R  0.3  0.2   0:00.03 top                                                                            
     1 root      20   0  128092   6700   3952 S  0.0  0.7   0:02.17 systemd                                                                        
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                                                       
     3 root      20   0       0      0      0 S  0.0  0.0   0:00.08 ksoftirqd/0                                                                    
     6 root      20   0       0      0      0 S  0.0  0.0   0:00.02 kworker/u256:0                                                                 
     7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 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 R  0.0  0.0   0:00.76 rcu_sched                                                                      
    10 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 watchdog/0                                                                     
    12 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 khelper                                                                        
    13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs                                                                      
    14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns                                                                          
    15 root      20   0       0      0      0 S  0.0  0.0   0:00.00 khungtaskd                                                                     
    16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback                                                                      
    17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd                                                                    
    18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset                                                                         
    19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kblockd                                                                        
    20 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 md                                                                             
    21 root      20   0       0      0      0 S  0.0  0.0   0:01.08 kworker/0:1                                                                    
    26 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kswapd0       
```
- Tasks:  89 total,   2 running,  87 sleeping,   0 stopped,   0 zombie
- 总共任务 89个,2个在运行,87正在休眠(暂时先休息一下,过一会儿再运行,并不是停止了),0个停止的,0个僵尸
- 僵尸进程 它的主进程被意外终止了,但是,留下一下子进程在这留着,没人管它了,只能自生自灭

- %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
- us + sy +id =100   0.0 wa有多少个wait ,  0.0 st被偷走的cpu百分比,如果你的服务器做了一些虚拟化,它有一些子机,虚拟机,有可能会偷走一部分cpu
- 我们比较关注的是 us ,

```
%Cpu(s):  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   999936 total,   716056 free,   114532 used,   169348 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   709072 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                        
  2118 root      20   0  157576   2144   1532 R  0.3  0.2   0:00.18 top                                                                            
     1 root      20   0  128092   6700   3952 S  0.0  0.7   0:02.23 systemd                                                                        
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                                                       
     3 root      20   0       0      0      0 S  0.0  0.0   0:00.13 ksoftirqd/0 
```
- KiB Mem :   999936   这是k字节  大概是1个g

- 默认按cpu 从高到低排序
- 按shift+m 键 (大写的M)可以按照内存的使用大小排序
```
  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                        
   523 root      20   0  327432  26876   6544 S  0.0  2.7   0:01.38 firewalld                                                                      
   832 root      20   0  553152  16448   5800 S  0.0  1.6   0:00.81 tuned                                                                          
   492 polkitd   20   0  528276  12684   4708 S  0.0  1.3   0:00.16 polkitd                                                                        
   536 root      20   0  437864   8124   6264 S  0.0  0.8   0:00.60 NetworkManager                                                                 
     1 root      20   0  128092   6700   3952 S  0.0  0.7   0:02.23 systemd    
```
- 大写的P 按照cpu使用情况从高到低排序
```
   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                        
  2118 root      20   0  157576   2144   1532 R  0.5  0.2   0:00.76 top                                                                            
     1 root      20   0  128092   6700   3952 S  0.0  0.7   0:02.24 systemd                                                                        
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                                                       
     3 root      20   0       0      0      0 S  0.0  0.0   0:00.15 ksoftirqd/0                                                                    
     ```
- 按数字1 可以列出所有核 cpu的使用状态 
- 按数字1 来回切换 cpu的使用状态
- 按q 退出


- 按top -c 可以查看到具体的命令全局的路径 看的比较详细
```
[root@aminglinux-01 ~]# top -c
top - 21:34:31 up 30 min,  2 users,  load average: 0.00, 0.01, 0.05
Tasks:  88 total,   1 running,  87 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 :   999936 total,   716056 free,   114532 used,   169348 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   709072 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                        
  2083 root      20   0  142972   5188   3924 S  0.3  0.5   0:00.84 sshd: root@pts/0                                                               
  2121 root      20   0  157604   2224   1612 R  0.3  0.2   0:00.03 top -c                                                                         
     1 root      20   0  128092   6700   3952 S  0.0  0.7   0:02.24 /usr/lib/systemd/systemd --switched-root --system --deserialize 21             
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 [kthreadd]                                                                     
     3 root      20   0       0      0      0 S  0.0  0.0   0:00.15 [ksoftirqd/0]                                                                  
     6 root      20   0       0      0      0 S  0.0  0.0   0:00.08 [kworker/u256:0]                                                               
     7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 [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.81 [rcu_sched]                                                                    
    10 root      rt   0       0      0      0 S  0.0  0.0   0:00.02 [watchdog/0]                                                                   
    12 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 [khelper]                                                                      
    13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 [kdevtmpfs]                                                                    
    14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 [netns]                                                                        
    15 root      20   0       0      0      0 S  0.0  0.0   0:00.00 [khungtaskd]                                                                   
    16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 [writeback]                                                                    
    17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 [kintegrityd]                                                                  
    18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 [bioset]                                                                       
    19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 [kblockd]                                                                      
    20 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 [md]                                                                           
    21 root      20   0       0      0      0 S  0.0  0.0   0:01.97 [kworker/0:1]                                                                  
    26 root      20   0       0      0      0 S  0.0  0.0   0:00.00 [kswapd0]                                                                      
    27 root      25   5       0      0      0 S  0.0  0.0   0:00.00 [ksmd]    
    ```



- 按命令 top -bn1   这个可以静态的显示, 一次性的 把所有的进程列出来 
- 这种用法适合在写脚本的时候用的
```
[root@aminglinux-01 ~]# top -bn1
top - 21:36:21 up 32 min,  2 users,  load average: 0.00, 0.01, 0.05
Tasks:  88 total,   1 running,  87 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.4 us,  0.7 sy,  0.0 ni, 98.8 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   999936 total,   716180 free,   114404 used,   169352 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   709196 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
  2122 root      20   0  157572   2020   1492 R  6.7  0.2   0:00.01 top
     1 root      20   0  128092   6700   3952 S  0.0  0.7   0:02.24 systemd
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd
     3 root      20   0       0      0      0 S  0.0  0.0   0:00.15 ksoftirqd/0
     6 root      20   0       0      0      0 S  0.0  0.0   0:00.08 kworker/u256:0
     7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 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.81 rcu_sched
    10 root      rt   0       0      0      0 S  0.0  0.0   0:00.02 watchdog/0
    12 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 khelper
    13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs
    14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns
    15 root      20   0       0      0      0 S  0.0  0.0   0:00.00 khungtaskd
    16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback
    17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd
    18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
    19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kblockd
    20 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 md
    21 root      20   0       0      0      0 S  0.0  0.0   0:02.04 kworker/0:1
    26 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kswapd0
    27 root      25   5       0      0      0 S  0.0  0.0   0:00.00 ksmd
    28 root      39  19       0      0      0 S  0.0  0.0   0:00.06 khugepaged
    29 root      20   0       0      0      0 S  0.0  0.0   0:00.00 fsnotify_mark
    30 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 crypto
    38 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kthrotld
    40 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kmpath_rdacd
    41 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kpsmoused
    43 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ipv6_addrconf
    62 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 deferwq
    94 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kauditd
   234 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ata_sff
   235 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 mpt_poll_0
   236 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 mpt/0
   239 root      20   0       0      0      0 S  0.0  0.0   0:00.00 scsi_eh_0
   241 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 scsi_tmf_0
   245 root      20   0       0      0      0 S  0.0  0.0   0:00.01 scsi_eh_1
   246 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kworker/u256:2
   250 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 scsi_tmf_1
   252 root      20   0       0      0      0 S  0.0  0.0   0:00.00 scsi_eh_2
   254 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 scsi_tmf_2
   255 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ttm_swap
   278 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfsalloc
   279 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs_mru_cache
   280 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-buf/sda3
   281 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-data/sda3
   282 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-conv/sda3
   283 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-cil/sda3
   284 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-reclaim/sda
   285 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-log/sda3
   286 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-eofblocks/s
   287 root      20   0       0      0      0 S  0.0  0.0   0:00.15 xfsaild/sda3
   355 root      20   0   34876   2748   2424 S  0.0  0.3   0:00.31 systemd-journal
   379 root      20   0  342584   4280   2608 S  0.0  0.4   0:00.01 lvmetad
   383 root      20   0   47372   5736   2796 S  0.0  0.6   0:00.27 systemd-udevd
   398 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 nfit
   424 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-buf/sda1
   426 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-data/sda1
   427 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-conv/sda1
   430 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-cil/sda1
   431 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-reclaim/sda
   432 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-log/sda1
   433 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-eofblocks/s
   434 root      20   0       0      0      0 S  0.0  0.0   0:00.00 xfsaild/sda1
   445 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kdmflush
   446 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
   468 root      16  -4   55416   1724   1320 S  0.0  0.2   0:00.05 auditd
   488 dbus      20   0   32760   1856   1408 S  0.0  0.2   0:00.51 dbus-daemon
   491 root      20   0   24296   1732   1416 S  0.0  0.2   0:00.04 systemd-logind
   492 polkitd   20   0  528276  12684   4708 S  0.0  1.3   0:00.16 polkitd
   494 root      20   0  302636   6152   4788 S  0.0  0.6   0:03.08 vmtoolsd
   502 root      20   0  126224   1656   1036 S  0.0  0.2   0:00.30 crond
   504 chrony    20   0  115848   1848   1476 S  0.0  0.2   0:00.09 chronyd
   506 root      20   0   92316   2416   1776 S  0.0  0.2   0:00.35 login
   523 root      20   0  327432  26876   6544 S  0.0  2.7   0:01.39 firewalld
   536 root      20   0  437864   8124   6264 S  0.0  0.8   0:00.60 NetworkManager
   832 root      20   0  553152  16448   5800 S  0.0  1.6   0:00.88 tuned
   834 root      20   0  287644   4144   3212 S  0.0  0.4   0:00.30 rsyslogd
   840 root      20   0   82468   1264    408 S  0.0  0.1   0:00.00 sshd
  1243 root      20   0   88980   2096   1096 S  0.0  0.2   0:00.04 master
  1258 postfix   20   0   89084   3964   2972 S  0.0  0.4   0:00.02 pickup
  1259 postfix   20   0   89152   3988   2992 S  0.0  0.4   0:00.02 qmgr
  2062 root      20   0  116308   3040   1696 S  0.0  0.3   0:00.06 bash
  2083 root      20   0  142972   5188   3924 S  0.0  0.5   0:00.86 sshd
  2086 root      20   0  116308   3024   1684 S  0.0  0.3   0:00.06 bash
  2109 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H
  2116 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:1H
  2119 root      20   0       0      0      0 S  0.0  0.0   0:00.02 kworker/0:0
  2120 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kworker/0:2
[root@aminglinux-01 ~]# 
```

- PID可能会用到,某个进程想杀死,q+pid 就能把这个进程杀死,USER表示哪个用户运行的
- PR NI 关于优先级的,可以不用关注它
-   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
   2122 root      20   0  157572   2020   1492 R  6.7  0.2   0:00.01 top
     1 root      20   0  128092   6700   3952 S  0.0  0.7   0:02.24 systemd






# 10.4 sar命令
这是一个非常全面分析系统状态的一个命令,只不过主要用来查看网卡的流量,也同样可以查看cpu 磁盘,内存的状态

![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170831/214158854.png?p_w_picpathslim)

- 这个命令如果没有 需要安装一个包
```
[root@aminglinux-01 ~]# sar
-bash: sar: 未找到命令
[root@aminglinux-01 ~]# yum install -y sysstat


总计                                                                                                                559 kB/s | 351 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86_64                                                                           1/2 
  正在安装    : sysstat-10.1.5-11.el7.x86_64                                                                                                    2/2 
  验证中      : sysstat-10.1.5-11.el7.x86_64                                                                                                    1/2 
  验证中      : lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86_64                                                                           2/2 

已安装:
  sysstat.x86_64 0:10.1.5-11.el7                                                                                                                    

作为依赖被安装:
  lm_sensors-libs.x86_64 0:3.4.0-4.20160601gitf9185e5.el7                                                                                           

完毕!
[root@aminglinux-01 ~]# 
```
-安装完 来运行这个命令
```
[root@aminglinux-01 ~]# sar
无法打开 /var/log/sa/sa31: 没有那个文件或目录
[root@aminglinux-01 ~]# ls /var/log/sa
[root@aminglinux-01 ~]# date
2017年 08月 31日 星期四 21:58:34 CST
[root@aminglinux-01 ~]# 

```
- sar 命令不加参数,会默认调用系统里面保留的历史文件 
- sar 没10分钟会把系统文件过滤一遍 ,保存一份,这个文件就存在这个目录里,这个时候还没有生成,只有10分钟之后才会有,


- 使用命令sar -n DEV 1 10    每隔1秒钟显示一次 显示10次
```
[root@aminglinux-01 ~]# sar -n DEV 1 10
Linux 3.10.0-514.el7.x86_64 (aminglinux-01) 	2017年08月31日 	_x86_64_	(1 CPU)

21时59分39秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
21时59分40秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21时59分40秒     ens33      1.00      1.00      0.06      0.18      0.00      0.00      0.00

21时59分40秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
21时59分41秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21时59分41秒     ens33      1.01      1.01      0.06      0.40      0.00      0.00      0.00

21时59分41秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
21时59分42秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21时59分42秒     ens33      1.00      1.00      0.06      0.40      0.00      0.00      0.00

21时59分42秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
21时59分43秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21时59分43秒     ens33      0.99      0.99      0.06      0.40      0.00      0.00      0.00

21时59分43秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
21时59分44秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21时59分44秒     ens33      1.01      1.01      0.06      0.40      0.00      0.00      0.00

21时59分44秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
21时59分45秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21时59分45秒     ens33      1.01      1.01      0.06      0.40      0.00      0.00      0.00

21时59分45秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
21时59分46秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21时59分46秒     ens33      0.99      0.99      0.06      0.40      0.00      0.00      0.00

21时59分46秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
21时59分47秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21时59分47秒     ens33      1.01      1.01      0.06      0.40      0.00      0.00      0.00

21时59分47秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
21时59分48秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21时59分48秒     ens33      1.00      1.00      0.06      0.40      0.00      0.00      0.00

21时59分48秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
21时59分49秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21时59分49秒     ens33      1.01      1.01      0.06      0.40      0.00      0.00      0.00

平均时间:     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:     ens33      1.00      1.00      0.06      0.38      0.00      0.00      0.00
[root@aminglinux-01 ~]# 
```

- 21时59分39秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
- 21时59分40秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
- 21时59分40秒     ens33      1.00      1.00      0.06      0.18      0.00      0.00      0.00

- 第一列是时间,第二列是网卡的名字  有俩个网卡,一个是lo 一个是ens33
- 第三列是rxpck/s  接收到 的数据包
- 第四列是txpck/s  发送出去的数据包   单位个  多少个

-  rxkB/s    接收到的数据包 单位kb 
-  txkB/s    发送的数据包 单位kb


- 着重看rxpck/s   txpck/s    rxkB/s    txkB/s 
- rxpck/s 这个数据包 几千还是正常的 上万 几十万 就不太正常了 ,也许被攻击了

```
[root@aminglinux-01 ~]# sar
Linux 3.10.0-514.el7.x86_64 (aminglinux-01) 	2017年08月31日 	_x86_64_	(1 CPU)
[root@aminglinux-01 ~]# 
```
- 已经不报错了,已经生成那个文件了,
```
[root@aminglinux-01 ~]# sar -n DEV -f /var/log/sa/sa31 
Linux 3.10.0-514.el7.x86_64 (aminglinux-01) 	2017年08月31日 	_x86_64_	(1 CPU)
```
- 可以查看历史数据的 这个31 是根据今天的日期来命名的  今天是8.31日,这个目录下最多保留一个月



- 查看系统的负载sar -q
```
[root@aminglinux-01 ~]# sar -q 1 10
Linux 3.10.0-514.el7.x86_64 (aminglinux-01) 	2017年08月31日 	_x86_64_	(1 CPU)

22时13分15秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
22时13分16秒         1       107      0.05      0.03      0.05         0
22时13分17秒         1       107      0.05      0.03      0.05         0
22时13分18秒         1       107      0.05      0.03      0.05         0
22时13分19秒         1       107      0.05      0.03      0.05         0
22时13分20秒         1       107      0.05      0.03      0.05         0
22时13分21秒         1       107      0.05      0.03      0.05         0
22时13分22秒         1       107      0.05      0.03      0.05         0
^C

22时13分23秒         2       107      0.05      0.03      0.05         0
平均时间:         1       107      0.05      0.03      0.05         0
[root@aminglinux-01 ~]# w
 22:13:26 up  1:09,  2 users,  load average: 0.05, 0.03, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      21:04    1:09m  0.06s  0.06s -bash
root     pts/0    192.168.202.1    21:04    6.00s  0.23s  0.04s w

[root@aminglinux-01 ~]# sar -q
Linux 3.10.0-514.el7.x86_64 (aminglinux-01) 	2017年08月31日 	_x86_64_	(1 CPU)

22时00分01秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
22时10分01秒         1       107      0.00      0.01      0.05         0
平均时间:         1       107      0.00      0.01      0.05         0
[root@aminglinux-01 ~]# 

[root@aminglinux-01 ~]# sar -q -f /var/log/sa/sa31 ^C


```
- 查看这个命令一般是查看历史数据

- 查看磁盘的sar -b  看它的读和写
```
[root@aminglinux-01 ~]# sar -b 1 5
Linux 3.10.0-514.el7.x86_64 (aminglinux-01) 	2017年08月31日 	_x86_64_	(1 CPU)

22时19分06秒       tps      rtps      wtps   bread/s   bwrtn/s
22时19分07秒      0.00      0.00      0.00      0.00      0.00
22时19分08秒      0.00      0.00      0.00      0.00      0.00
22时19分09秒      0.00      0.00      0.00      0.00      0.00
22时19分10秒      0.00      0.00      0.00      0.00      0.00
22时19分11秒      0.00      0.00      0.00      0.00      0.00
平均时间:      0.00      0.00      0.00      0.00      0.00
[root@aminglinux-01 ~]# 
```



# 10.5 nload 命令 
- 监控网卡流量的命令 
- 没有nload命令需要安装俩个包 yum install epel-release   yum install nload
```
[root@aminglinux-01 ~]# nload
-bash: nload: 未找到命令
[root@aminglinux-01 ~]# yum install epel-release

更新完毕:
  epel-release.noarch 0:7-10                                                                 

完毕!
[root@aminglinux-01 ~]# yum install nload

已安装:
  nload.x86_64 0:0.7.4-4.el7                                                                 

完毕!
[root@aminglinux-01 ~]#
```
-安装完成后直接运行nload
```
[root@aminglinux-01 ~]# nload

Device ens33 [192.168.202.130] (1/2):
=============================================================================================
Incoming:





                                                                Curr: 944.00 Bit/s
                                                                Avg: 1.02 kBit/s
                                                                Min: 944.00 Bit/s
                                                                Max: 1.84 kBit/s
                                                                Ttl: 6.69 MByte
Outgoing:






                                                                Curr: 8.07 kBit/s
                                                                Avg: 7.63 kBit/s
                                                                Min: 4.25 kBit/s
                                                                Max: 8.07 kBit/s
                                                                Ttl: 2.80 MByte
```
-按方向键 右键 查看第二个网卡 可以来回切换 左右
```
Device lo [127.0.0.1] (2/2):
=============================================================================================
Incoming:





                                                                Curr: 0.00 Bit/s
                                                                Avg: 0.00 Bit/s
                                                                Min: 0.00 Bit/s
                                                                Max: 0.00 Bit/s
                                                                Ttl: 5.39 kByte
Outgoing:






                                                                Curr: 0.00 Bit/s
                                                                Avg: 0.00 Bit/s
                                                                Min: 0.00 Bit/s
                                                                Max: 0.00 Bit/s
                                                                Ttl: 5.39 kByte
```
- 通常情况下我们买的带宽 指的是出去的带宽 Outgoing ,
- Inconming 进来的流量,如果有攻击 进来的流量就很大



---

- 补充下 关于sa 命令  
-在/var/log/sa 目录下有一个sa31 文件  
- sar31 是可以查看的 可以cat的 需要明天才能生成这个文件
- sa31 是一个二进制文件,只能用sar 命令 -f 去加载它查看它,
- sar17 可以使用cat文件去查看
```
[root@aminglinux-01 ~]# ls /var/log/sa
sa31
[root@aminglinux-01 ~]# ls /var/log/sa/sar31 

```