您好,登錄后才能下訂單哦!
本篇內容介紹了“CentOS命令行性能檢測工具有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
一、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是一個重要的系統進程,這種情況下你只能通過一次重新啟動服務器來擺脫僵尸進程。也必須分析應用為什么會導致僵死?
三、iostat
iostat是sysstat包的一部分。Iostat顯示自系統啟動后的平均CPU時間(與uptime類似),它也可以顯示磁盤子系統的使用情況,iostat可以用來監測CPU利用率和磁盤利用率。
CPU利用率分四個部分:
引用
%user:user level(應用)的CPU占用率情況
%nice:加入nice優先級的user level的CPU占用率情況
%sys:system level(內核)的CPU占用情況
%idle:空閑的CPU資源情況
磁盤占用率有下面幾個部分:
引用
Device:塊設備名
Tps:設備每秒進行傳輸的數量(每秒的I/O請求)。多個單獨的I/O請求可以被組成一個傳輸操作,因為一個傳輸操作可以是不同的容量。
Blk_read/s, Blk_wrtn/s:該設備每秒讀寫的塊的數量。塊可能為不同的容量。
Blk_read, Blk_wrtn:自系統啟動以來讀寫的塊設備的總量。
塊的大小
塊可能為不同的容量。塊的大小一般為1024、2048、4048byte。可通過tune2fs或dumpe2fs獲得:
引用
[root@rfgz ~]# tune2fs -l /dev/hda1|grep 'Block size'
Block size: 4096
[root@rfgz ~]# dumpe2fs -h /dev/hda1|grep 'Block size'
dumpe2fs 1.35 (28-Feb-2004)
Block size: 4096
四、Vmstat
Vmstat命令提供了對進程、內存、頁面I/O塊和CPU等信息的監控,vmstat可以顯示檢測結果的平均值或者取樣值,取樣模式可以提供一個取樣時間段內不同頻率的監測結果。
注:在取樣模式中需要考慮在數據收集中可能出現的誤差,將取樣頻率設為比較低的值可以盡可能的減小誤差的影響。
下面介紹一下各列的含義
引用
·process(procs)
r:等待運行時間的進程數量
b:處在不可中斷睡眠狀態的進程
w:被交換出去但是仍然可以運行的進程,這個值是計算出來的
·memoryswpd:虛擬內存的數量
free:空閑內存的數量
buff:用做緩沖區的內存數量
·swap
si:從硬盤交換來的數量
so:交換到硬盤去的數量
·IO
bi:向一個塊設備輸出的塊數量
bo:從一個塊設備接受的塊數量
·system
in:每秒發生的中斷數量, 包括時鐘
cs:每秒發生的context switches的數量
·cpu(整個cpu運行時間的百分比)
us:非內核代碼運行的時間(用戶時間,包括nice時間)
sy:內核代碼運行的時間(系統時間)
id:空閑時間,在Linux 2.5.41之前的內核版本中,這個值包括I/O等待時間;
wa:等待I/O操作的時間,在Linux 2.5.41之前的內核版本中這個值為0
Vmstat命令提供了大量的附加參數,下面列舉幾個十分有用的參數:
引用
·m:顯示內核的內存利用率
·a:顯示內存頁面信息,包括活躍和不活躍的內存頁面
·n:顯示報頭行,這個參數在使用取樣模式并將命令結果輸出到一個文件時非常有用。例如root#vmstat –n 2 10以2秒的頻率顯示10輸出結果
·當使用-p {分區}時,vmstat提供對I/O結果的統計
五、ps和pstree
ps和pstree命令是系統分析最常用的基本命令,ps命令提供了一個正在運行的進程的列表,列出進程的數量取決于命令所附加的參數。例如ps –A 命令列出所有進程和它們相應的進程ID(PID),進程的PID是使用其他一些工具之前所必須了解的,例如pmap或者renice。
在運行java應用的系統上,ps –A 命令的輸出很容易就會超過屏幕的顯示范圍,這樣就很難得到所有進程的完整信息。這時,使用pstree命令可以以樹狀結構來顯示所有的進程信息并且可以整合子進程的信息。Pstree命令對分析進程的來源十分有用。
六、Numastat
隨著NUMA架構的不斷發展,例如eServer xSeries 445及其后續產品eServer xSeries 460,現在NUMA架構已經成為了企業級數據中心的主流。然而,NUMA架構在性能調優方面面臨了新的挑戰,例如內存分配的問題在NUMA系統之前并沒人感興趣,而Numastat命令提供了一個監測NUMA架構的工具。Numastat命令提供了本地內存與遠程內存使用情況的對比和各個節點的內存使用情況。Numa_miss列顯示分配失敗的本地內存,numa_foreign列顯示分配遠程內存(訪問速度慢)信息,過多的調用遠程內存將增加系統的延遲從而影響整個系統的性能。使運行在一個節點上的進程都訪問本地內存將極大的改善系統的性能。
※我使用的系統不支持NUMA架構,此圖為原文檔截圖。
七、sar
sar程序也是sysstat安裝包的一部分。sar命令用于收集、報告和保存系統的信息。Sar命令由三個應用組成:sar,用與顯示數據;sa1和sa2,用于收集和存儲數據。默認情況下,系統會在crontab中加入自動收集和分析的操作:
引用
[root@rfgz ~]# cat /etc/cron.d/sysstat
# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib/sa/sa1 1 1
# generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib/sa/sa2 -A
sar命令所生成的數據保存在/var/log/sa/目錄下,數據按照時間保存,可以根據時間來查詢相應的性能數據。
你也可以使用sar在命令行下得到一個實時的執行結果,收集的數據可以包括CPU利用率、內存頁面、網絡I/O等等。下面的命令表示用sar執行5次,間隔時間為3秒:
八、free
free命令顯示系統的所有內存的使用情況,包括空閑內存、被使用的內存和交換內存空間。Free命令顯示也包括一些內核使用的緩存和緩沖區的信息。
當使用free命令的時候,需要記住linux的內存結構和虛擬內存的管理方法,比如空閑內存數量的限制,還有swap空間的使用并不標志一個內存瓶頸的出現。
Free命令有用的參數:
引用
·-b,-k,-m和-g分別按照bytes, kilobytes, megabytes, gigabytes顯示結果。
·-l區別顯示low和high內存
·-c {count}顯示free輸出的次數
九、Pmap
pmap命令顯示一個或者多個進程使用內存的數量,你可以用這個工具來確定服務器上哪個進程占用了過多的內存從而導致內存瓶頸。
十、Strace
strace截取和記錄進程的系統調用信息,還包括進程接受的命令信號。這是一個有用的診斷和調試工具,系統管理員可以通過strace來解決程序上的問題。
命令格式,需要指定需要監測的進程ID。這個多為開發人員使用。
strace -p <pid>
十一、ulimit
可以通過ulimit來控制系統資源的使用。請看以前的日志:使用ulimit和proc去調整系統參數
十二、Mpstat
mpstat命令也是sysstat包的一部分。Mpstat命令用于監測一個多CPU系統中每個可用CPU的情況。Mpstat命令可以顯示每個CPU或者所有CPU的運行情況,同時也可以像vmstat命令那樣使用參數進行一定頻率的采樣結果的監測。
“CentOS命令行性能檢測工具有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。