Hi,大家好我是tom,I am back.今天要給大家講講linux系統一些性能相關命令。
1.fdisk 磁盤管理
是一個強大的危險命令,所有涉及磁盤的操作都由該命令完成,包括:新增磁盤、增刪改磁盤分區等。
1.fdisk?-l?查看磁盤分區情況
Disk /dev/sda: 27.8 GB, 27896315904 bytes
255 heads, 63 sectors/track, 3391 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
?
???Device?Boot??????Start?????????End??????Blocks???Id??System
/dev/sda1???*???????????1????????3260????26185918+??83??Linux
/dev/sda2????????????3261????????3391?????1052257+??82??Linux swap / Solaris
可以看到,該機器上的硬盤只有一塊,命名為/dev/sda,可用27.8G。在fdisk中以柱面為單位計數,該硬盤被分為3391個柱面,每個柱面8225280bytes。(現代硬盤容量超大,導致fdisk運算失準,雖然最后計算的數值是準確的,但是磁頭(heads)、分段(sectors)都是不準確的,準確的是柱面數量。)
該磁盤分為兩個分區,第一個分區從第一個柱面開始到第3260個柱面結束,占據26185918個數據塊,為linux分區……這樣的信息在某些緊急情況下是有用的。
?
2.df -h 查看分區使用情況
-h參數是以人類可理解方式顯示磁盤空間。第一列為分區,第二列為分區大小,第三列為使用量,第四列為剩余量,第五列為使用百分比,最后是掛載點。一目了然,反應磁盤使用情況。
其中tmpfs是個特殊分區,可以理解為2.6內核帶來的新特性,更高效率的使用內存和虛擬空間的技術。系統偶爾用到,某些特殊應用有需求,比如:oracle。
?
3.du -h filename顯示文件目錄大小命令,這里h參數代表以人性化的方式展示
du -sh filename?對于目錄,不加-s參數會將目錄下所有目錄依次列出。加了-s參數后僅僅顯示目標目錄的大小。
經典用法,du?–sk *|sort?–nr。看看哪個目錄占空間大
4.free命令查看當前內存使用情況
如上圖所示,free命令可以顯示當前內存使用情況。
Linux有一個特性,被命令執行過的目錄結構會暫時存放在buffer中,系統中打開過的文檔內容暫時存放在cache中。這兩個類似緩存的內容都放在內存中,如果內存沒有使用滿,則不會釋放,當內存不足時,立刻釋放。也就是說,查看linux內存是否大量使用,實際上不是看的第一行的used和free,而是看第二行,used減去buffers、cached以后和free加上buffers、cached以后的空間。可以用多次執行ls /dev做實驗,驗證cache的作用;可以多次man kill做實驗,驗證buffers。
5.uptime查看cpu load情況
load average:平均負載,被定義為在特定時間間隔內(一個cpu周期)運行隊列中的平均進程數。這個數值關系到cpu是否還能勝任。分為1分鐘平均值、5分鐘平均值和15分鐘平均值三個數值。
[root@localhost home]# uptime
?11:27:09 up 17:55,??3 users,??load average: 0.49, 0.40, 0.37
機器允許突發時間的處理,也就是1分鐘load很高,5分鐘load較高,15分鐘load起伏不大的情況下,說明該次高load為突發情況,可以容忍。但是如果高load持續,導致5分鐘和15分鐘load都已經超過報警值,這時候需要考慮進行處理。如果15分鐘load高于1分鐘load,說明高load情況已經得到緩解。
?
6.vmstat是一個常用的運維命令,可以從進程數(load)、內存、swap、cpu使用率等方面考慮機器的使用情況。
如上圖所示,其中參數1代表每一秒鐘取一回數值。第一行數值為數據在之前一段時間的平均值,之后每一行列出的為當前的值。
7.top 查看進程對系統資源使用情況
OP命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況。
TOP是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態。如果在前臺執行該命令,它將獨占前臺,直到用戶終止該程序為止。比較準確的說,top命令提供了實時的對系統處理器的狀態監視。它將顯示系統中CPU最“敏感”的任務列表。該命令可以按CPU使用、內存使用和執行時間對任務進行排序;而且該命令的很多特性都可以通過交互式命令或者在個人定制文件中進行設定。
在top顯示視圖中,按字母“f”,進入增加信息的選項。上述所有列以字母a到z排列在該視圖中,在該視圖中按任意字母鍵,可以增加或者刪除top顯示的信息。字母為大寫且左側有“*”的選項將在顯示視圖中顯示。選擇完畢后,按非字母的任意鍵退回顯示視圖。
?
在顯示視圖中按小寫字母“o”,進入顯示順序選擇。對某個字母按其大寫鍵,可以將其向上移動,按小寫鍵,將其向下移動。比如,需要把“%cpu”放置在第二列顯示,則連續按動大寫字母“K”。
8.使用iostat分析IO性能
iostat可以顯示CPU和I/O系統的負載情況及分區狀態信息
?
avg-cpu段:
%user: 在用戶級別運行所使用的CPU的百分比.
%nice: nice操作所使用的CPU的百分比.
%sys: 在系統級別(kernel)運行所使用CPU的百分比.
%iowait: CPU等待硬件I/O時,所占用CPU百分比.
%idle: CPU空閑時間的百分比.
Device段:
tps: 每秒鐘發送到的I/O請求數.
Blk_read /s: 每秒讀取的block數.
Blk_wrtn/s: 每秒寫入的block數.
Blk_read:???讀入的block總數.
Blk_wrtn:??寫入的block總數.
iostat各個參數說明:
-c 僅顯示CPU統計信息.與-d選項互斥.
?-d 僅顯示磁盤統計信息.與-c選項互斥.
?-k 以K為單位顯示每秒的磁盤請求數,默認單位塊.
?-p device | ALL
??與-x選項互斥,用于顯示塊設備及系統分區的統計信息.也可以在-p后指定一個設備名,如:
??#?iostat -p hda
??或顯示所有設備
??#?iostat -p ALL
?-t????在輸出數據時,打印搜集數據的時間.
?-V????打印版本號和幫助信息.
?-x????輸出擴展信息.
常見用法
iostat -d -k 1 10 #查看TPS和吞吐量信息
iostat -d -x -k 1 10 #查看設備使用率(%util)、響應時間(await)
iostat -c 1 10 #查看cpu狀態