1. 程式人生 > >使用w,vmstat命令,top命令,sar命令,nload命令

使用w,vmstat命令,top命令,sar命令,nload命令

使用wvmstat命令top命令s

監控系統狀態
  • w命令/uptime

load average: 0.00, 0.01, 0.05

上面這條顯示的就是系統負載。後面有三段數字

[root@localhost ~]# w
 21:33:04 up 41 min,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.245.1    20:53    0.00s  0.10s  0.02s w
[root@localhost ~]# 

第一個數值表示一分鐘內系統的平均負載值,第二個數值表示5分鐘內系統的平均負載值,第三個數值表示15分鐘內系統的平均值。

主要著重看第一個值,值越大說明服務器的壓力越大。一般情況下這個值只要不超過服務器的cpu數量就沒有關系。

查看系統有幾個cpu : cat /proc/cpuinfo

看processor的值是多少,0就表示有1個邏輯cpu。10就表示有11個邏輯cpu

[root@localhost ~]# cat /proc/cpuinfo
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 61
model name  : Intel(R) Core(TM) i5-5300U CPU @ 2.30GHz
stepping    : 4
microcode   : 0x22
cpu MHz     : 2294.250
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 : 20
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 pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm rdseed adx smap xsaveopt
bogomips    : 4589.38
clflush size    : 64
cache_alignment : 64
address sizes   : 42 bits physical, 48 bits virtual
power management:

[root@localhost ~]# 

vmstat

當我們發現系統的負載偏高的時候,可以用vmstat來查看都有哪些原因導致配置不夠用了。

[root@localhost ~]# 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 715284    892 169560    0    0    30     3   35   63  0  0 99  0  0
[root@localhost ~]# 

一般用vmstat 1 來查看系統負載。這條命令的意思是每一秒鐘進行動態顯示

[root@localhost ~]# 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 715440    892 169592    0    0    29     3   35   62  0  0 100  0  0
 0  0      0 715424    892 169592    0    0     0     0   45   60  0  1 99  0  0
 0  0      0 715424    892 169592    0    0     0     0   24   34  0  0 100  0  0
 0  0      0 715424    892 169592    0    0     0     0   33   41  1  0 99  0  0
 0  0      0 715424    892 169592    0    0     0     0   38   42  0  1 99  0  0
 0  0      0 715424    892 169592    0    0     0     0   36   49  0  0 100  0  0
^C
[root@localhost ~]# 

後面再加上一個數字就是指定顯示幾行後結束

[root@localhost ~]# vmstat 1 3
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 715440    892 169592    0    0    26     3   34   60  0  0 100  0  0
 0  0      0 715424    892 169592    0    0     0     0   28   42  0  0 100  0  0
 0  0      0 715424    892 169592    0    0     0     0   28   34  0  0 100  0  0
[root@localhost ~]# 

其中r(run)的意思:表示運行或者等待的時間的進程數。因為某一個時刻只有一個進程在用一個cpu,如果有十個進程,就會一個進程在某一個時間運行,到時間了,就運行下一個進程。進行輪流運行,其他進程在排隊。

b:(block) : 等待資源的進程數。比如進程在進行完成之後要寫入磁盤,這時候如果硬盤的負載很高,讀寫速度慢,或者網速太慢了。導致進程出現等待的情況。

swpd :表示切換到交換分區中的內存數量,單位為KB。

free : 表示當前空閑的內存數量,單位為KB。

buff : 表示(即將寫入磁盤的)緩沖大小,單位為KB。

cache : 表示(從硬盤中讀取的)緩存大小,單位為KB。

si : 表示由交換區寫入內存的數據量,單位為KB.

so : 表示由內存寫入交換分區的數據量,單位為KB.

bi : 表示從塊設備讀取數據的量(讀磁盤),單位為KB.

bo :寫磁盤 ,單位為KB。

in : 表示某一時間間隔內觀測到的每秒設備的中斷次數。

cs : 表示每秒產生的上下文切換次數。

us : 顯示用戶下所花費CPU的資源的百分比。

sy :顯示系統花費CPU的資源的百分比。

id : 表示cpu處於空閑狀態的資源百分比。

wa : 表示I/O等待所占用CPU的時間百分比。

st : 表示被偷走的cpu所占百分比,(比如虛擬機會偷走物理機的cpu)一般都是0,不用關註。

top 查看進程使用資源情況

top - 22:47:23 up  1:55,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  94 total,   1 running,  93 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,   714648 free,   114544 used,   170744 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   707696 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                        
   543 root      20   0  302636   6168   4788 S  0.3  0.6   0:15.07 vmtoolsd                                                                       
  2108 root      20   0  143096   5152   3876 S  0.3  0.5   0:00.77 sshd                                                                           
     1 root      20   0  128092   6704   3952 S  0.0  0.7   0:01.91 systemd                                                                        
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kthreadd                                                                       
     3 root      20   0       0      0      0 S  0.0  0.0   0:00.27 ksoftirqd/0                                                                    
     6 root      20   0       0      0      0 S  0.0  0.0   0:00.34 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.56 rcu_sched                                                                      
    10 root      rt   0       0      0      0 S  0.0  0.0   0:00.09 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                                                                             
    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                                                                       
    39 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kworker/u256:1                                                                 
    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  

默認按照cpu百分比進行排列

數字單位是k字節。

按大寫字母M是以內存排序

按大寫P,是以cpu排序

按數字1,可以列出所有核cpu的使用情況。

按q退出。

top -bn1 :表示非動態打印系統資源的使用情況,可以用在shell腳本中。

sar命令

幾乎可以監控系統的所有資源狀態。俗稱linux系統的瑞士×××。

首先需要安裝這個命令。

[root@localhost ~]# sar
-bash: sar: 未找到命令
[root@localhost ~]# yum install -y sysstat

sar -n DEV 1 3 每一秒顯示三次

[root@localhost ~]# sar -n DEV  1 3
Linux 3.10.0-514.el7.x86_64 (localhost.localdomain)     2017年09月11日     _x86_64_    (1 CPU)

23時15分34秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
23時15分35秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
23時15分35秒     ens33      1.01      1.01      0.06      0.20      0.00      0.00      0.00

23時15分35秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
23時15分36秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
23時15分36秒     ens33      1.00      1.00      0.06      0.40      0.00      0.00      0.00

23時15分36秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
23時15分37秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
23時15分37秒     ens33      0.99      0.99      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.33      0.00      0.00      0.00
[root@localhost ~]# 

rxpck/s 表示每秒進入收取包的數量。txpck/s 表示每秒發送出去包的量。rxkb/s 表示每秒收取的量單位為kb,txkb/s表示每秒發送的數據量。

數據包幾千是正常的,如果數據包上萬或者幾十萬,就很有可能被攻擊了。可以進行抓包查看。

sar -q 查看歷史負載

sar -n DEV -f /var/log/sa/sa17 查看某一天的網卡流量歷史,sa17每10分鐘生成一次,二進制文件,不能直接cat

sar -n DEV -f /var/log/sa/sar17 sar17是每天生成一次,可以直接cat查看

sar -b 查看磁盤。

nload命令

首先需要安裝yum install epel-release

然後安裝yum install -y nload

非常直觀的查看網卡,按方向鍵切換網卡,按q退出

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

                                                                                                    Curr: 944.00 Bit/s
                                                                                                    Avg: 1.26 kBit/s
                                                                                                    Min: 944.00 Bit/s
                                                                                                    Max: 2.76 kBit/s
                                                                                                    Ttl: 6.86 MByte
Outgoing:

                                                                                                    Curr: 9.05 kBit/s
                                                                                                    Avg: 8.91 kBit/s
                                                                                                    Min: 4.23 kBit/s
                                                                                                    Max: 9.49 kBit/s
                                                                                                    Ttl: 3.48 MByte

使用w,vmstat命令,top命令,sar命令,nload命令