歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux命令 >> 利用Linux系統命令行性能檢測工具

利用Linux系統命令行性能檢測工具

日期:2017/2/28 10:02:38   编辑:Linux命令
Linux工具Linux命令

上面引用了IBM紅皮書介紹的關於Linux性能需要考慮的內容。今天繼續截選和修改文檔中關於檢測部分的介紹,但這部分不是很詳細,今後有時間我會再補充一些參考資料。

※注:下面附圖的命令輸出信息,以紅旗DC Server 5.0 for x86 Sp1為基礎平台,可能在不同的操作系統或核心版本有較大區別,對比時請留意。

一、uptime

Uptime命令的顯示結果包括服務器已經運行了多長時間,有多少登陸用戶和對服務器性能的總體評估(load average)。load average值分別記錄了上個1分鐘,5分鐘和15分鐘間隔的負載情況,load average不是一個百分比,而是在隊列中等待執行的進程的數量。如果進程要求CPU時間被阻塞(意味著CPU沒有時間處理它),load average值將增加。另一方面,如果每個進程都可以立刻得到訪問CPU的時間,這個值將減少。

UP kernel下的load average的最佳值是1,這說明每個進程都可以立刻被CPU處理,當然,更低不會有問題,只說明浪費了一部分的資源。但在不同的系統間這個值也是不同的,例如一個單CPU的工作站,load average為1或者2都是可以接受的,而在一個多CPU的系統中這個值應除以物理CPU的個數,假設CPU個數為4,而load average為8或者10,那結果也是在2多點而已。

你可以使用uptime判斷一個性能問題是出現在服務器上還是網絡上。例如,如果一個網絡應用運行性能不理想,運行uptime檢查系統負載是否比較高,如果不是這個問題更可能出現在你的網絡上。

二、top

Top命令顯示了實際CPU使用情況,默認情況下,它顯示了服務器上占用CPU的任務信息並且每5秒鐘刷新一次。你可以通過多種方式分類它們,包括PID、時間和內存使用情況。

下面是輸出值的介紹:

引用
PID:進程標識
USER;進程所有者的用戶名
PRI:進程的優先級
NI:nice級別
SIZE:進程占用的內存數量(代碼+數據+堆棧)
RSS;進程使用的物理內存數量
SHARE;該進程和其他進程共享內存的數量
STAT:進程的狀態:S=休眠狀態,R=運行狀態,T=停止狀態,D=中斷休眠狀態,Z=僵屍狀態
%CPU:共享的CPU使用
%MEM;共享的物理內存
TIME:進程占用CPU的時間
COMMAND:啟動任務的命令行(包括參數)


進程的優先級和nice級別
進程優先級是一個決定進程被CPU執行優先順序的參數,內核會根據需要調整這個值。Nice值是一個對優先權的限制。進程優先級的值不能低於nice值。(nice值越低優先級越高)
進程優先級是無法去手動改變的,只有通過改變nice值去間接的調整進程優先級。如果一個進程運行的太慢了,你可以通過指定一個較低的nice值去為它分配更多的CPU資源。當然,這意味著其他的一些進程將被分配更少的CPU資源,運行更慢一些。Linux支持nice值的范圍是19(低優先級)到-20(高優先級),默認的值是0。如果需要改變一個進程的nice值為負數(高優先級),必須使用su命令登陸到root用戶。下面是一些調整nice值的命令示例,
以nice值-5開始程序xyz

#nice –n -5 xyz

改變已經運行的程序的nice值

#renice level pid

將pid為2500的進程的nice值改為10

#renice 10 2500

僵屍進程
當一個進程被結束,在它結束之前通常需要用一些時間去完成所有的任務(比如關閉打開的文件),在一個很短的時間裡,這個進程的狀態為僵屍狀態。在進程完成所有關閉任務之後,會向父進程提交它關閉的信息。有些情況下,一個僵屍進程不能關閉它自己,這時這個進程狀態就為z(zombie)。不能使用kill命令殺死僵屍進程,因為它已經標志為“dead”。如果你無法擺脫一個僵屍進程,你可以殺死它的父進程,這個僵屍進程也就消失了。然而,如果父進程是init進程,你不能殺死init進程,因為init是一個重要的系統進程,這種情況下你只能通過一次重新啟動服務器來擺脫僵屍進程。也必須分析應用為什麼會導致僵死?

Copyright © Linux教程網 All Rights Reserved