目錄
一认境、使用w查看系統(tǒng)負(fù)載
二、vmstat命令
三挟鸠、top命令
四元暴、sar命令
五、nload命令
一兄猩、使用w查看系統(tǒng)負(fù)載
w命令用于顯示已經(jīng)登陸系統(tǒng)的用戶列表茉盏,并顯示用戶正在執(zhí)行的指令。示例命令如下:
[root@minglinux-01 ~]# w
20:34:22 up 1 min, 1 user, load average: 0.15, 0.07, 0.03
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.89.1 20:34 4.00s 0.05s 0.02s w
第1行從左至右顯示的信息依次為:時(shí)間枢冤、系統(tǒng)運(yùn)行時(shí)間鸠姨、登錄用戶數(shù)、平均負(fù)載淹真。第2行開始的所有行則是當(dāng)前登錄的用戶名及其登錄地址等讶迁。其中最需要關(guān)注的是第1行中 load average:后面的3個(gè)數(shù)值。
第1個(gè)數(shù)值表示1分鐘內(nèi)系統(tǒng)的平均負(fù)載值核蘸,第2個(gè)數(shù)值表示5分鐘內(nèi)系統(tǒng)的平均負(fù)載值巍糯,第3個(gè)數(shù)值表示15分鐘內(nèi)系統(tǒng)的平均負(fù)載值。
我們著重看第1個(gè)值客扎,它表示單位時(shí)間段內(nèi)使用CPU的活動(dòng)進(jìn)程數(shù)(在這里其實(shí)就是1分鐘內(nèi))祟峦,值越大就說(shuō)明服務(wù)器壓力越大。一般情況下徙鱼,這個(gè)值只要不超過(guò)服務(wù)器的CPU數(shù)量就沒有關(guān)系宅楞。如果服務(wù)器的CPU數(shù)量為8,那么值小于8就說(shuō)明當(dāng)前服務(wù)器沒有壓力袱吆,否則就要注意一下了厌衙。
查看當(dāng)前系統(tǒng)有幾個(gè)CPU,我們可以使用命令grep -c 'processor' /proc/cpuinfo
绞绒,processor的值是0就表示有1個(gè)邏輯cpu婶希,值是10就表示有11個(gè)邏輯cpu;查看有幾顆物理CPU時(shí)蓬衡,則需要查看關(guān)鍵字physical id喻杈,命令為grep -c 'physical id' /proc/cpuinfo
拐揭。
[root@minglinux-01 ~]# grep -c 'processor' /proc/cpuinfo
2
[root@minglinux-01 ~]# grep -c 'physical id' /proc/cpuinfo
2
二、vmstat命令
vmstat命令的含義為顯示虛擬內(nèi)存狀態(tài)(“Viryual Memor Statics”)奕塑,但是它可以報(bào)告關(guān)于進(jìn)程堂污、內(nèi)存、I/O等系統(tǒng)整體運(yùn)行狀態(tài)龄砰。
[root@minglinux ~]# 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 1240688 2076 291800 0 0 376 74 145 435 1 2 97 0 0
使用vmstat 1 5
命令每隔1秒輸出一次狀態(tài)盟猖,共輸出5次;使用vmstat 1
命令每隔1秒輸出一次狀態(tài)且一直輸出换棚,除非按Ctrl+C鍵結(jié)束式镐。
[root@minglinux-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 1573968 2076 158440 0 0 30 2 44 61 0 0 99 0 0
0 0 0 1573948 2076 158472 0 0 0 0 96 64 0 1 99 0 0
0 0 0 1573948 2076 158472 0 0 0 0 73 57 0 1 100 0 0
0 0 0 1573948 2076 158472 0 0 0 0 47 40 0 0 100 0 0
0 0 0 1573948 2076 158472 0 0 0 0 49 39 0 0 100 0 0
vmstat命令打印的結(jié)果共分為6部分:procs、memory固蚤、swap娘汞、io、system和cpu夕玩。請(qǐng)重點(diǎn)關(guān)注一下r你弦、b、si燎孟、so禽作、bi、bo這幾列信息揩页。
- procs(進(jìn)程)
r(run):表示運(yùn)行或等待CPU時(shí)間片的進(jìn)程數(shù)旷偿。這個(gè)值也可以判斷是否需要增加CPU,值如果長(zhǎng)期大于服務(wù)器CPU的個(gè)數(shù)爆侣,則說(shuō)明CPU資源不夠用了萍程。
b(block):表示等待資源的進(jìn)程數(shù),這個(gè)資源指的是I/O兔仰、內(nèi)存等茫负。該數(shù)值如果長(zhǎng)時(shí)間大于1,則需要關(guān)注一下了斋陪。
- Memory(內(nèi)存)
swpd:表示切換到交換分區(qū)中的內(nèi)存數(shù)量朽褪,單位為KB置吓。
free:表示當(dāng)前空閑的內(nèi)存大小无虚,單位為KB。
buff:表示(即將寫入磁盤的)緩沖大小衍锚,單位為KB友题。
cache:表示(從磁盤中讀取的)緩存大小,單位為KB戴质。
- swap(內(nèi)存交換)
si:表示由交換區(qū)寫入內(nèi)存的數(shù)據(jù)量度宦,單位為KB踢匣。
so:表示由內(nèi)存寫入交換區(qū)的數(shù)據(jù)量,單位為KB戈抄。
注意:當(dāng)si和so兩列的數(shù)值比較高并且不斷變化
時(shí)离唬,說(shuō)明內(nèi)存不夠了。
- io(磁盤使用)
bi:表示每秒從塊設(shè)備讀取數(shù)據(jù)的量(讀磁盤)划鸽,單位為KB输莺。
bo:表示每秒從塊設(shè)備寫入數(shù)據(jù)的量(寫磁盤),單位為KB裸诽。
注意:如果磁盤io壓力很大嫂用,這兩列的數(shù)值會(huì)比較高。
- system(系統(tǒng))
in:表示在某一時(shí)間間隔內(nèi)觀測(cè)到的每秒設(shè)備的中斷次數(shù)丈冬。
cs:表示每秒產(chǎn)生的上下文切換次數(shù)嘱函。
注意:上面2個(gè)值越大,會(huì)看到由內(nèi)核消耗的CPU時(shí)間會(huì)越大埂蕊。
- CPU(以百分比表示)
us:顯示用戶下所花費(fèi)CPU的時(shí)間百分比往弓。
sy:顯示系統(tǒng)花費(fèi)CPU的時(shí)間百分比。
id:表示CPU處于空閑狀態(tài)的時(shí)間百分比蓄氧。
wa:表示I/O等待所占用CPU的時(shí)間百分比亮航。
st:表示被偷走的CPU所占百分比(一般都為0,不用關(guān)注)匀们。
三缴淋、top命令
top命令用于動(dòng)態(tài)監(jiān)控進(jìn)程所占的系統(tǒng)資源,每隔3秒變一次泄朴。它的特點(diǎn)是把占用系統(tǒng)資源(CPU重抖、內(nèi)存、磁盤I/O等)最高的進(jìn)程放到最前面祖灰。
[root@minglinux ~]# top
top - 00:40:28 up 1:14, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 98 total, 1 running, 97 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 : 1865252 total, 1239748 free, 331000 used, 294504 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1323556 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
526 root 20 0 298916 6232 4880 S 2.0 0.3 0:43.11 vmtoolsd
1437 root 20 0 161840 2168 1548 R 0.7 0.1 0:00.18 top
522 root 20 0 26376 1748 1440 S 0.3 0.1 0:00.12 systemd-lo+
1 root 20 0 45956 6472 4128 S 0.0 0.3 0:01.62 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.18 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:+
6 root 20 0 0 0 0 S 0.0 0.0 0:00.42 kworker/u2+
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:01.57 rcu_sched
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-dr+
11 root rt 0 0 0 0 S 0.0 0.0 0:00.06 watchdog/0
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
上例中钟沛,top命令打印出了很多信息,包括系統(tǒng)負(fù)載(loadaverage)局扶、進(jìn)程數(shù)(Tasks)恨统、CPU使用情況、內(nèi)存使用情況以及交換分區(qū)使用情況三妈。這些內(nèi)容其實(shí)可以通過(guò)其他命令來(lái)查看畜埋,用top重點(diǎn)查看的還是下面的進(jìn)程使用系統(tǒng)資源的詳細(xì)狀況,其中你需要關(guān)注%CPU畴蒲、%MEM和COMMAND這幾項(xiàng)所代表的意義悠鞍。RES這一項(xiàng)為進(jìn)程所占的內(nèi)存大小,而%MEM這一項(xiàng)為使用內(nèi)存的百分比模燥。
在top狀態(tài)下咖祭,默認(rèn)按照cpu百分比進(jìn)行排列掩宜,按Shift+m鍵可以按照內(nèi)存使用大小排序,按數(shù)字1可以列出所有核CPU的使用狀態(tài)么翰,按q鍵可以退出top牺汤。
命令top -c顯示詳細(xì)的進(jìn)程信息,示例命令如下:
[root@minglinux-01 ~]# top -c
top - 21:40:07 up 1:06, 2 users, load average: 0.00, 0.01, 0.04
Tasks: 103 total, 1 running, 102 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.3 sy, 0.0 ni, 99.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1865276 total, 1568496 free, 134408 used, 162372 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1552140 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
569 root 20 0 298916 6228 4880 S 0.3 0.3 0:08.73 /usr/bin/+
1500 root 20 0 158804 5984 4624 S 0.3 0.3 0:00.28 sshd: roo+
1523 root 20 0 161968 2276 1632 R 0.3 0.1 0:00.02 top -c
1 root 20 0 46064 6464 4112 S 0.0 0.3 0:03.09 /usr/lib/+
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.04 [ksoftirq+
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/+
6 root 20 0 0 0 0 S 0.0 0.0 0:00.30 [kworker/+
7 root rt 0 0 0 0 S 0.0 0.0 0:00.04 [migratio+
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:01.17 [rcu_sche+
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [lru-add-+
11 root rt 0 0 0 0 S 0.0 0.0 0:00.05 [watchdog+
12 root rt 0 0 0 0 S 0.0 0.0 0:00.07 [watchdog+
13 root rt 0 0 0 0 S 0.0 0.0 0:00.01 [migratio+
14 root 20 0 0 0 0 S 0.0 0.0 0:00.02 [ksoftirq+
16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/+
命令top -bn1浩嫌,它表示非動(dòng)態(tài)打印系統(tǒng)資源的使用情況慧瘤,可以用在shell腳本中。該命令和top的唯一區(qū)別是它會(huì)一次性輸出所有信息而非動(dòng)態(tài)顯示固该。示例命令如下:
[root@minglinux ~]# top -bn1 |head
top - 00:55:34 up 1:29, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 99 total, 1 running, 98 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1865252 total, 1239196 free, 331504 used, 294552 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1323052 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1440 root 20 0 161840 2072 1516 R 6.2 0.1 0:00.03 top
1 root 20 0 45956 6472 4128 S 0.0 0.3 0:01.69 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
四锅减、sar命令
sar命令很強(qiáng)大,它可以監(jiān)控系統(tǒng)幾乎所有資源的狀態(tài)伐坏,比如平均負(fù)載怔匣、網(wǎng)卡流量、磁盤狀態(tài)桦沉、內(nèi)存使用等每瞒。
Centos自身不帶sar命令,使用yum -y install sysstat
命令安裝纯露。
初次使用sar命令會(huì)報(bào)錯(cuò)剿骨,那是因?yàn)閟ar工具還沒有生成相應(yīng)的數(shù)據(jù)庫(kù)文件(無(wú)需實(shí)時(shí)監(jiān)控,因?yàn)椴挥萌ゲ樵兡莻€(gè)庫(kù)文件埠褪,每隔十分鐘會(huì)更新一次文件)浓利。
sar -n DEV -f /var/log/sa/saxx 查看某一天的網(wǎng)卡流量歷史,saxx每10分鐘生成一次钞速,是二進(jìn)制文件贷掖,不能直接cat。
sar -n DEV -f /var/log/sa/sarxx sarxx文件是每天生成一次渴语,可以直接cat查看苹威。
[root@minglinux-01 ~]# sar
無(wú)法打開 /var/log/sa/sa23: 沒有那個(gè)文件或目錄
[root@minglinux-01 ~]# ls /var/log/sa
- sar -n DEV 實(shí)時(shí)網(wǎng)卡流量
[root@minglinux-01 ~]# sar -n DEV 1 5 //每隔1秒顯示1次,顯示5次
Linux 3.10.0-862.11.6.el7.x86_64 (minglinux-01) 2018年10月23日 _x86_64_ (2 CPU)
21時(shí)51分16秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
21時(shí)51分17秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21時(shí)51分17秒 ens33 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21時(shí)51分17秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
21時(shí)51分18秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21時(shí)51分18秒 ens33 1.00 1.00 0.06 0.40 0.00 0.00 0.00
21時(shí)51分18秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
21時(shí)51分19秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21時(shí)51分19秒 ens33 1.00 1.00 0.06 0.40 0.00 0.00 0.00
21時(shí)51分19秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
21時(shí)51分20秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21時(shí)51分20秒 ens33 1.00 1.00 0.06 0.40 0.00 0.00 0.00
21時(shí)51分20秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
21時(shí)51分21秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21時(shí)51分21秒 ens33 2.00 2.00 0.12 0.46 0.00 0.00 0.00
平均時(shí)間: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
平均時(shí)間: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時(shí)間: ens33 1.00 1.00 0.06 0.33 0.00 0.00 0.00
IFACE這一列表示設(shè)備名稱驾凶,rxpck/s這一列表示每秒進(jìn)入收取的包的數(shù)量牙甫,txpck/s這一列表示每秒發(fā)送出去的包的數(shù)量,rxkB/s這一列表示每秒收取的數(shù)據(jù)量(單位為KB)调违,txkB/s這一列表示每秒發(fā)送的數(shù)據(jù)量(后面幾列不需要關(guān)注)窟哺。
- sar -q 查看歷史負(fù)載
[root@minglinux-01 ~]# sar -q
Linux 3.10.0-862.11.6.el7.x86_64 (minglinux-01) 2018年10月23日 _x86_64_ (2 CPU)
21時(shí)50分01秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
22時(shí)00分01秒 0 116 0.01 0.02 0.05 0
平均時(shí)間: 0 116 0.01 0.02 0.05 0
- sar -b 磁盤讀寫
[root@minglinux-01 ~]# sar -b
Linux 3.10.0-862.11.6.el7.x86_64 (minglinux-01) 2018年10月23日 _x86_64_ (2 CPU)
21時(shí)50分01秒 tps rtps wtps bread/s bwrtn/s
22時(shí)00分01秒 0.05 0.00 0.05 0.00 0.67
平均時(shí)間: 0.05 0.00 0.05 0.00 0.67
- sar -f /var/log/sa/saxx 查看某一天的網(wǎng)卡流量歷史,后面跟文件名
五翰萨、nload命令
sar雖然可以查看網(wǎng)卡流量脏答,但是不夠直觀,還有一個(gè)更好用的工具亩鬼,那就是nload殖告。系統(tǒng)沒有默認(rèn)安裝,使用yum install –y epel-release; yum install –y nload
命令安裝雳锋。
運(yùn)行nload命令如下:
[root@minglinux-01 ~]# nload
Device ens33 [192.168.89.130] (1/2):
================================================================================
Incoming:
Curr: 944.00 Bit/s
Avg: 1.27 kBit/s
Min: 944.00 Bit/s
Max: 3.45 kBit/s
Ttl: 11.61 MByte
Outgoing:
Curr: 7.98 kBit/s
Avg: 8.00 kBit/s
Min: 4.12 kBit/s
Max: 9.25 kBit/s
Ttl: 890.67 kByte
最上面一行為網(wǎng)卡名字以及IP地址黄绩,按向右箭頭可以查看其他網(wǎng)卡的網(wǎng)絡(luò)流量。輸出結(jié)果分為兩部分玷过,Incoming為進(jìn)入網(wǎng)卡的流量爽丹,Outgoing為網(wǎng)卡出去的流量,我們關(guān)注的當(dāng)然是Curr那行的數(shù)據(jù)辛蚊,其單位也可以動(dòng)態(tài)自動(dòng)調(diào)整粤蝎,非常人性化。按q退出該界面袋马。