Linux學習-性能監控

1,監控CPU使用情況--uptime命令

該命令描述爲:打印當前時間,系統已經運行了多久,當前登錄用戶數及系統平均負載

[study@monitor ~]$ uptime

 06:58:50 up 1 day, 10:41,  4 users,  load average: 0.06, 0.02, 0.00

系統當前時間爲6:58:50,系統已經運行了1天10小時41分鐘,當前有4個用戶在登錄,CPU負載分別顯示最近的一分鐘,五分鐘,十五分鐘的負載情況。這裏CPU負載表示單位時間段內CPU等待隊列中平均有多少進程在等待,等待的進程個數越多,說明CPU越忙

延伸 當前登錄的用戶

[study@monitor ~]$ who

root     tty7         2016-08-15 01:20 (:0)

root     pts/0        2016-08-15 01:21 (:0.0)

study    pts/1        2016-08-15 01:21 (172.19.17.16)

study    pts/2        2016-08-15 01:46 (172.19.17.16)

你的電腦默認有7個tty
你可以分別按住ctrl+alt+  ……F7
pts是你打命令的終端,叫僞終端

[root@monitor ~]# w  更強大的命令

 07:13:25 up 1 day, 10:56,  1 user,  load average: 0.00, 0.00, 0.00

USER     TTY      FROM          LOGIN@   IDLE   JCPU   PCPU WHAT

study    pts/2    172.19.17.16     01:46    0.00s  0.10s  0.05s sshd: study [priv]

2,監控內存及交換分區使用情況--free命令

顯示系統內存及交換分區信息

free -b|k|m 輸出單位 bytes,KB,MB  默認是Byte

[root@monitor ~]# free

          total       used      free     shared    buffers     cached

Mem:       1020348     823804     196544        0     135920     487716

-/+ buffers/cache:       200168     820180

Swap:       835576        0     835576

Mem一行的total代表內存總量爲1020348Byte;used代表系統將內存中的823804Byte劃分成了buffer和cache,也就是buffer和cache的總容量;free內存總容量減去buffer和cache的綜合之後剩餘容量爲196544;buffers代表當前buffer的剩餘容量爲135920;cached表示當前cache的剩餘容量爲487716

第二行used代表buffer和cache當前總共使用了200168Byte;free代表buffer和cache總剩餘容量加內存未被劃分的剩餘容量之和。也就是820180=196544+135920+487766;823804=135920+487716+200168

第三行爲交換分區的使用情況,total代表交換分區總容量爲835576Byte;used代表已經使用了0Byte,free代表剩餘交換分區爲835576Byte

3,監控磁盤使用情況--df命令

df命令描述:生成系統磁盤空間的使用量信息

df[選項]

選項 -h 人性化方式顯示容量信息

 -i 顯示磁盤incode使用量信息

 -T 顯示文件系統類型

[study@monitor ~]$ df

Filesystem                   1K-blocks    Used    Available Use%  Mounted on

/dev/mapper/VolGroup-lv_root       6926264     4311212  2263208  66%    /

tmpfs                       510172      72     510100    1%    /dev/shm

/dev/sda1                     495844   34849      435395   8%    /boot

[study@monitor ~]$ df -h

Filesystem                    Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root  6.7G  4.2G  2.2G  66% /

tmpfs                         499M   72K  499M   1% /dev/shm

/dev/sda1                     485M   35M  426M   8% /boot

[study@monitor ~]$ df -hT

Filesystem                   Type   Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root ext4   6.7G  4.2G  2.2G  66% /

tmpfs                        tmpfs  499M   72K  499M   1% /dev/shm

/dev/sda1                    ext4   485M   35M  426M   8% /boot

[study@monitor ~]$ df -i

Filesystem                   Inodes  IUsed  IFree IUse% Mounted on

/dev/mapper/VolGroup-lv_root      440640 130034 310606   30% /

tmpfs                        127543      3 127540    1% /dev/shm

/dev/sda1                    128016     38 127978    1% /boot

如最下的,根分區inodes總個數爲440640,使用了130034個,剩餘310606,使用率爲1%,這裏的inode個數決定了決定了該分區可以創建的文件個數,有多少個inode節點,就可以再該分區創建多少個文件,在上面看,如果/目錄再創建310606個文件,即使系統顯示磁盤空間仍然有大量的剩餘,也無法再創建新的文件,因爲inode已經耗盡

4,監控網絡使用情況--ifconfig和netstat命令

4.1 ifconfig命令可以查看網卡接口信息,在Linux中以太網卡一般被標爲ethx,第一塊以太網卡爲eth0,第二塊以太網卡爲eth1,依次類推。此外,我們一般使用netstat命令查看服務器開啓的端口信息以及網絡連接狀態。

[study@monitor ~]$ ifconfig

eth0      Link encap:Ethernet  HWaddr 08:00:27:99:6F:0C  

          inet addr:172.19.17.100  Bcast:172.19.17.255  Mask:255.255.255.0

          inet6 addr: fe80::a00:27ff:fe99:6f0c/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:180623 errors:0 dropped:0 overruns:0 frame:0

          TX packets:3234 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:12499524 (11.9 MiB)  TX bytes:1032437 (1008.2 KiB)

從以上信息中可以看出,該網卡的IP地址爲172.19.17.100,廣播地址爲172.19.17.255,子網掩碼爲255.255.255.0,系統開機至現在共接收了384884個數據包;系統開機至現在總共發送了3234個數據包,系統總共接收了11.9MB的數據,發送了1008.2KB的數據

4.2 netstat命令

描述:打印網絡連接、路由器、網絡接口統計等信息

用法:netstat[選項]

選項:-s 顯示各種協議數據統計信息

-n 使用數字形式的IP、端口號、用戶ID替代主機、協議、用戶等名稱信息。

-p 顯示進程名稱及對應進程ID號

-l 僅顯示正在監聽的sockets接口信息

-u 查看udp連接信息

-t 查看tcp連接信息

wKioL1exMcmQtMMyAAB1FTMk9_M504.png-wh_50

5,

5.1 ps命令

查看當前進程信息

標準語法格式:

ps -e   #查看所有進程信息

ps -ef  #全格式顯示進程信息

BSD語法格式

ps -ax

ps -aux

例如:

[root@monitor ~]# ps -ef

UID        PID  PPID  C STIME TTY          TIME CMD

root         1     0  0 10:14 ?        00:00:00 /sbin/init

root         2     0  0 10:14 ?        00:00:00 [kthreadd]

5.2 top命令

動態查看進程信息

選項 -d #top刷新時間,默認爲3秒

 -p #查看指定PID的進程信息

top -d 1 -p 1,2,3

通過top可以動態查看10個進程的信息,默認按CPU使用率排序,輸入M可以按照內存使用率排序,輸入N可以按照進程號排序,輸入Z可以高亮顯示顏色 


6,補充:

6.1 dmesg | tail

查看最後10條的系統消息,查找可能會引發性能問題的錯誤

6.2 vmstat 1

統計虛擬內存的信息,參數1是指打印一秒內的統計信息

wKiom1e4-i-DDXT1AAAbbZi3G34960.png-wh_50

r:運行隊列的長度,可以更好地確定CPU的飽和度,'r'值大於CPU數則爲飽和

free:以kb爲單位的空閒內存。如果這個值很大,說明有足夠的空閒內存

si,so:換入的內存和換出的內存。如果他們不爲0,說明內存已經耗盡

us,sy,id,wa,st:CPU時間的不同組成部分,是所有CPU的平均數。分別表示用戶態時間,系統態時間(內核)、空閒、等待I/O以及竊取時間(stolen time,虛擬化環境下,CPU在其它租戶下的開銷)

將用戶態時間和系統態時間相加,可以判斷CPU是否忙碌。如果一直有等待I/O,此時CPU是空閒的。可以將等待I/O看做另一種形式的CPU空閒。

I/O處理一定會消耗系統態時間。如果系統時間平均佔比很高,比如說超過20%,或許可以深入研究下,可能是內核處理I/O的效率不高

6.3 mpstat -P ALL 1

wKioL1e4_a6z1C2XAAAYT5PnXFw607.png-wh_50

打印每個CPU的狀況。可以檢查各CPU的負載是夠均衡。比如,一個CPU很熱,可能是單線程應用造成的


6.4 pidstat 1

wKiom1e4_l-CnRFVAAA81Dp6GKA214.png-wh_50

pidstat按進程打印CPU的使用情況。循環輸出活動進程的信息。可用於觀察模式隨時間的變化情況。用戶也可以把觀察到的信息記錄下來,以供分析研究。

%CPU這一列是所有CPU的整體情況,

6.5 iostat -xz 1

wKiom1e4_xjD_LDTAABBtIv3aUs564.png-wh_50

這是瞭解塊設備的一個極佳工具,能看到實際負載和性能信息

r/s.w/s,rkB/s,wkB/s:分表表示每秒發給磁盤設備的讀請求數,每秒發給磁盤設備的寫請求數,每秒從磁盤設備讀取的KB數,每秒向磁盤設備寫入的KB數。可以使用它們表示負載特性。性能問題可能就是由過多的負載造成的。

await:平均I/O響應時間,單位爲毫秒。包括排隊時間和服務時間。如果它大於預期的平均時間,可能是設備以及飽和,也可能是設備存在問題

avgqu-sz:提交到設備的平均請求數。如果大於1,設備可能以及飽和。

%util:設備使用率。設備忙於處理請求的百分比。如果大於60%,通常會導致較差的性能(可以在await中看出來),不過也與具體的設備有關。如果接近100%,通常意味着設備以及飽和。


如果存儲設備室後面有多快磁盤支撐的邏輯磁盤,即使設備使用率是100%,後端磁盤也可能遠沒有飽和,而是還能處理更多工作。


6.6 sar -n DEV 1

wKioL1e4_3jjGrlJAAAXP7GG4Y8318.png-wh_50

使用該工具檢查網絡接口的吞吐量,以rxkB/s和txkB/s爲手段測量負載

6.7 sar -n TCP,ETCP 1

wKiom1e4_8yypkCzAAAZfs0DbuI367.png-wh_50

這是一些關鍵TCP指標的總結。其中包括:


  • active/s:每秒本地發起的TCP連接數(比如通過connect())。

  • passive/s:每秒遠端發起的TCP連接數(比如通過accept())。

  • retrans/s:每秒TCP重傳數。


active和passive連接數通常用於粗略地測量服務器負載。方便起見,可以把active看作向外的連接,把passive看作向內的連接;不過也有不嚴格之處,比如考慮從localhost到localhost的連接。


重傳數是網絡或服務器問題的一個信號:可能是網絡不可靠;也可能是服務器過載和丟包。像圖中的例子,每秒只有一個新的TCP連接。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章