歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> linux下運維必備的性能分析工具總結

linux下運維必備的性能分析工具總結

日期:2017/3/1 16:26:22   编辑:關於Linux
linux下運維必備的性能分析工具總結 性能分析工具總結: 1、 vmstat :對操作系統的內存信息、進程、CPU進行監視分析 #vmstat 2 3 每二秒更新輸出一次,統計3次後停止。 [root@MYDB1 ~]# vmstat 2 3 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 170688 171224 464808 0 0 0 1 14 7 0 0 100 0 0 0 0 0 170680 171224 464828 0 0 0 0 12 36 0 0 100 0 0 0 0 0 170680 171224 464828 0 0 0 0 13 37 0 0 100 0 0 Procs: r CPU時間片的進程數;b等待資源的進程數。 Memory:swpd 內存交換區的大小,只要si,so長期為0,就不影響。Free空閒的物理內存;buff 內存緩沖區;cache緩存,只要bi小就正常。 swap: si 磁盤調入內存;so內存調入磁盤,so與si長期多的話,說明需要增加內存了。 IO:磁盤讀寫狀態;bi從設備讀入的總量;bo寫入設備的總量,bi+bo參考值為1000,超過就是IO有問題了。 System:采集間隔內發生的中斷數。In每秒中斷數;cs每秒產生的上下文切換次數,這二個值班越大,內核消耗CPU時間越多。 Cpu: us 進程消耗CPU的時間比,值越高,消耗的CPU時間越多,長期大於50%,需要優化程或算法;sy內核消耗CPU的時間比。Us+sy大於80%時,說明CPU資源不足。Id CPU空閒時間比;wa是IO等待占用CPU時間比,wa越高,說明IO越嚴重。Wa參考值為20%,長期大於20%說明IO問題嚴重。 2、 sar 可以獲取系統的CPU、運行隊列、磁盤IO、分頁(交換區)、內存、CPU中斷、網絡等。 #sar –u 3 2 每三秒統計一次,統計2次 [root@MYDB1 ~]# sar -n DEV 3 2 Linux 2.6.32-279.19.1.el6.x86_64 (MYDB1) 03/09/13 _x86_64_ (1 CPU) 18:00:50 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 18:00:53 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 18:00:53 eth0 4.00 0.00 0.29 0.00 0.00 0.00 0.00 18:00:53 eth1 0.33 0.00 0.02 0.00 0.00 0.00 0.00 18:00:53 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 18:00:56 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 18:00:56 eth0 2.66 0.33 0.21 0.15 0.00 0.00 0.00 18:00:56 eth1 0.66 0.00 0.04 0.00 0.00 0.00 0.00 Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: eth0 3.33 0.17 0.25 0.08 0.00 0.00 0.00 Average: eth1 0.50 0.00 0.03 0.00 0.00 0.00 0.00 參數:-A 所有設備;-u所有CPU;-P指定的CPU;-d硬盤;-r內存采樣;-b內存緩沖區采樣;-v進程、文件、節點和鎖表狀態;-n網絡;-q隊列;-R進程;-y終端設備;-W系統交換 –o filename 將命令結果以二進制格式放在文件中; 3、 iostat(需要安裝Sysstat),主要針對磁盤IO磁盤監視。 #Iostat –d 2 3 [root@MYDB1 ~]# iostat -d 2 3 Linux 2.6.32-279.19.1.el6.x86_64 (MYDB1) 03/09/13 _x86_64_ (1 CPU) Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 0.16 0.19 2.28 531210 6494604 dm-0 0.29 0.18 2.28 522090 6494552 dm-1 0.00 0.00 0.00 2376 0 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 0.00 0.00 0.00 0 0 dm-0 0.00 0.00 0.00 0 0 dm-1 0.00 0.00 0.00 0 0 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 0.00 0.00 0.00 0 0 dm-0 0.00 0.00 0.00 0 0 dm-1 0.00 0.00 0.00 0 0 Blk_read/s:每秒讀取的數據塊數 Blk_wrtn/s每秒寫入的數據塊數 Blk_read 讀取的所有塊數 Blk_wrtn 寫入的所有塊數 參數:-c 顯示CPU的使用情況;-d磁盤;-k以KB這單位;-t打印開始執行時間;-x device 按磁盤名稱統計。 4、 free 內存監控 #free –m (以M為單位) [root@MYDB1 ~]# free -m total used free shared buffers cached Mem: 995 829 166 0 167 453 -/+ buffers/cache: 208 787 Swap: 2015 0 2015 經驗值:應用可用的內存/系統物理內存>70%,說明性能優良,<20%是,資源緊缺,需要增加內存。在這二個數之間,算正常。 5、 uptime #uptime [root@MYDB1 ~]# uptime 18:17:59 up 33 days, 3:30, 3 users, load average: 0.00, 0.00, 0.00 系統時間、開機運行時間、登錄用戶數、1分鐘內、5分鐘內、15分鐘內平均負載。 Load average一般不能大於CPU的個數,長期大於的話,說明CPU很忙,需要優化程序或者增加CPU。 6、 netstat:網絡連接、運行端口、路由表等 #netstat –i [root@MYDB1 ~]# netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 5295771 0 0 0 114725 0 0 0 BMRU 參數:-a 所有的連接與端口;-n有效的連接與端口;-r 路由表;-s按協議的統計;-v與n類似;-t TCP協議;-u UDP協議;- I 自動配置的接口狀態;-l LISTEN狀態;-p對應的PID進程,-c按秒。 Iface:接口名稱 MTU:最大傳輸單元,單位字節 RX-OK/TX-OK:正確無誤的數據包 RX-ERR/TX-ERR:產生的錯誤 RX-DRP/TX-DRP:丟棄的包 RX-OVR/TX-OVR:誤差遺失的包 錯誤、丟棄、遺失的包越大,網絡問題越大。 7、 top #top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 19228 1520 1232 S 0.0 0.1 0:07.49 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 參數:-d 時間間隔;-I不顯示死的或閒的進程;-c 整個命令路徑;-s安全模式運行;-b分屏輸出,可與-n結合輸出到文檔;-n輸出的次數,完成後退出。 PR:優先級 NI:nice值,負值班優先級高,正的相反 VIRT:使用的虛擬內存總量,單位KB RES:占用的內存,單位KB SHR:共享內存大小,單位KB TIME+:使用的CPU時間總計,單位1/100秒 COMMAND:命令名或者路徑
Copyright © Linux教程網 All Rights Reserved