2.7 性能監控
2.7.1 監控cpu使用情況——uptime命令
描述:打印當前時間,系統已經運行了多久,當前登錄用戶數以及系統平均負載。
[root@instructor etc]# uptime 13:11:15 up 1:26, 4 users, load average: 0.00, 0.00, 0.00
當前系統時間爲13點11分,系統已經運行了1小時26分鐘,當前有4個用戶在登錄,CPU負載分別顯示的是最近1分鐘、5分鐘、15分鐘的負載情況。需要說明的是,這裏的負載表示單位時間段內CPU等待隊列中平均有多少進程在等待,等待的進程數越多,說明CPU越忙。
2.7.2 監控內存及交互分區使用情況——free命令
描述:顯示系統內存及交換分區信息
用法:free [-b|-k|-m]
選項:-b|-k|-m 指定輸出容量的單位,分別爲Byte、KB、MB
[root@instructor ~]# free -m total used free shared buffers cached Mem: 992 774 218 0 44 384 -/+ buffers/cache: 344 648 Swap: 1023 0 1023
Linux在開機後會預先提取一部分內存,並劃分爲buffer與cache以後隨時提供給進程使用。
以上輸出信息中,Mem一行的total代表內存總容量992;userd代表系統將內存中的774劃分爲buffer和cache;free代表內存總容量減去buffer和cache的總和之後的剩餘容量218;buffer代表當前buffer的剩餘容量爲44;cache代表當前cache的剩餘容量爲384。(MB)
第二行userd代表buffer與cache當前共使用了344;free代表buffer與cache總剩餘容量加內存未被劃分的剩餘容量之和。648=44+384+218,這個值是系統中內存未被使用的實際容量。
第三行爲交換分區的使用情況,total代表交換分區容量爲1023,used代表已經使用了0,free代表剩餘交換分區爲1023。
2.7.3 監控磁盤使用情況——df命令
df
描述:生成系統磁盤空間的使用量信息
用法:df [選項]...
選項:-h 人性化方式顯示容量信息
-i 顯示磁盤inode使用量信息
-T 顯示文件系統類型
2.7.4 監控網絡使用情況——ifconfig和netstat命令
1. ifconfig
ifconfig命令可以查看網卡接口信息,在Linux中以太網卡一般被標識爲ethX,第一塊以太網卡爲eth0,第二塊爲eth1.此外,一般使用netstat命令查看服務器開啓的端口信息以及網絡連接狀態。
[root@instructor ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:55:D7:44 inet addr:192.168.0.254 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe55:d744/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2938 errors:0 dropped:0 overruns:0 frame:0 TX packets:1652 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:289956 (283.1 KiB) TX bytes:220381 (215.2 KiB)
該網卡的IP地址爲192.168.0.254,廣播地址爲192.168.0.255,子網掩碼爲255.255.255.0,系統開機至現在總共接收了2938個數據包,發送了1652個數據包;計算機總共接收了283.1 KiB數據,總共發送了215.2 KiB數據。
2. netstat
描述:打印網絡連接、路由表、網絡接口統計等信息
用法:netstat [選項]
選項:-s 顯示各種協議數據統計信息
-n 使用數字形式的IP、端口號、用戶ID替代主機、協議、用戶等名稱信息
-p 顯示進程名稱及對應進程ID號
-l 僅顯示正在監聽的shocket接口信息
-u 查看udp連接信息
-t 查看tcp連接信息
[root@instructor ~]# netstat -nutlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:37480 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:875 0.0.0.0:* LISTEN 2315/rpc.rquotad
2.7.5 監控進程使用情況——ps和top命令
1. ps
描述:查看當前進程信息
用法:ps命令版本衆多,有多種語法種類,如UNIX、BSD以及GNU Linux
標準語法格式:
[root@instructor ~]# ps -e PID TTY TIME CMD 1 ? 00:00:03 init 2 ? 00:00:00 kthreadd [root@instructor ~]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 13:02 ? 00:00:03 /sbin/init root 2 0 0 13:02 ? 00:00:00 [kthreadd]
BSD語法格式:
[root@instructor ~]# ps -ax Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ PID TTY STAT TIME COMMAND 1 ? Ss 0:03 /sbin/init 2 ? S 0:00 [kthreadd] [root@instructor ~]# ps -axu Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 19356 1564 ? Ss 13:02 0:03 /sbin/init root 2 0.0 0.0 0 0 ? S 13:02 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 13:02 0:00 [migration/0]
UID或USER代表進程的執行用戶,PID爲進程的唯一編號,PPID爲父進程ID編號,%CPU代表進程的CPU佔有率,%MEM代表進程的內存佔有率,VSZ代表進程所使用的虛擬內存大小(KB),RSS代表進程所使用的真實內存大小,TTY爲終端,STIME或START代表進程啓動時間,STAT代表進程狀態(D:不可中斷的進程,R:正在運行的進程,S:正在睡眠的進程,T:停止或被追蹤的進程,X:死掉的進程,Z:殭屍進程),TIME代表進程佔有CPU的總時間,CMD或COMMAND代表進程的命令。
2. top
描述:動態查看進程信息
選項:-d top刷新間隔,默認爲3秒
-p 查看指定PID的進程信息
[root@instructor ~]# top top - 16:23:59 up 3:21, 4 users, load average: 0.00, 0.00, 0.00 Tasks: 192 total, 2 running, 190 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 Mem: 1016672k total, 796296k used, 220376k free, 48324k buffers Swap: 1048568k total, 0k used, 1048568k free, 394828k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 20 root 20 0 0 0 0 S 0.3 0.0 0:10.10 ata/0 204 root 20 0 0 0 0 S 0.3 0.0 0:07.79 scsi_eh_0
默認按CPU使用率排序,輸入M可以按照內存使用率排序,輸入N可以按照進程號排序,輸入z可以高亮顯示顏色。