Linux 性能檢測的常用命令或工具有:top、free、iostat、vmstat、time
測試文件系統的工具有: dd 、 iozone
top : 詳細的說明見http://www.cnblogs.com/xuxm2007/archive/2010/12/02/1894809.html
free : 看我的系統的截圖如下,恐怖的是free都爲零了,其實並沒什麼大礙,原因可見: http://www.cnblogs.com/tzhangofseu/archive/2011/12/27/2303162.html 和 http://www.linuxfly.org/post/320/
其它命令實際上這裏講得比較清楚了: http://www.linuxfly.org/post/115/
系統性能指標的參數說明: 以下四點摘自http://www.linuxfly.org/post/114/
(1)處理器參數
這是一個很簡單的參數,它直觀的描述了每個CPU的利用率。在xSeries架構中,如果CPU的利用率長時間的超過80%,就可能是出現了處理器的瓶頸。
·Runable processes
這個值描述了正在準備被執行的進程,在一個持續時間裏這個值不應該超過物理CPU數量的10倍,否則CPU方面就可能存在瓶頸。
·Blocked
描述了那些因爲等待I/O操作結束而不能被執行的進程,Blocked可能指出你正面臨I/O瓶頸。
·User time
描述了處理用戶進程的百分比,包括nice time。如果User time的值很高,說明系統性能用在處理實際的工作。
·System time
描述了CPU花費在處理內核操作包括IRQ和軟件中斷上面的百分比。如果system time很高說明系統可能存在網絡或者驅動堆棧方面的瓶頸。一個系統通常只花費很少的時間去處理內核的操作。
·Idle time
描述了CPU空閒的百分比。
·Nice time
描述了CPU花費在處理re-nicing進程的百分比。
·Context switch
系統中線程之間進行交換的數量。
·Waiting
CPU花費在等待I/O操作上的總時間,與blocked相似,一個系統不應該花費太多的時間在等待I/O操作上,否則你應該進一步檢測I/O子系統是否存在瓶頸。
·Interrupts
Interrupts值包括硬Interrupts和軟Interrupts,硬Interrupts會對系統性能帶來更多的不利影響。高的Interrupts值指出系統可能存在一個軟件的瓶頸,可能是內核或者驅動程序。注意Interrupts值中包括CPU時鐘導致的中斷(現代的xServer系統每秒1000個Interrupts值)。
(2)內存參數
相比其他操作系統,Linux空閒內存的值不應該做爲一個性能參考的重要指標,因爲就像我們之前提到過的,Linux內核會分配大量沒有被使用的內存作爲文件系統的緩存,所以這個值通常都比較小。
·Swap usage
這個值描述了已經被使用的swap空間。Swap usage只表示了Linux管理內存的有效性。對識別內存瓶頸來說,Swap In/Out纔是一個比較又意義的依據,如果Swap In/Out的值長期保持在每秒200到300個頁面通常就表示系統可能存在內存的瓶頸。
·Buffer and cache
這個值描述了爲文件系統和塊設備分配的緩存。在Red Flag DC Server 5版本中,你可以通過修改/proc/sys/vm中的page_cache_tuning來調整空閒內存中作爲緩存的數量。
·Slabs
描述了內核使用的內存空間,注意內核的頁面是不能被交換到磁盤上的。
·Active versus inactive memory
提供了關於系統內存的active內存信息,Inactive內存是被kswapd守護進程交換到磁盤上的空間。
(3)網絡參數
這個參數表示了一個指定網卡接收和發送的數據包的數量。
·Bytes received and sent
這個參數表示了一個指定網卡接收和發送的數據包的字節數。
·Collisions per second
這個值提供了發生在指定網卡上的網絡衝突的數量。持續的出現這個值代表在網絡架構上出現了瓶頸,而不是在服務器端出現的問題。在正常配置的網絡中衝突是非常少見的,除非用戶的網絡環境都是由hub組成。
·Packets dropped
這個值表示了被內核丟掉的數據包數量,可能是因爲防火牆或者是網絡緩存的缺乏。
·Overruns
Overruns表達了超出網絡接口緩存的次數,這個參數應該和packets dropped值聯繫到一起來判斷是否存在在網絡緩存或者網絡隊列過長方面的瓶頸。
·Errors
這個值記錄了標誌爲失敗的幀的數量。這個可能由錯誤的網絡配置或者部分網線損壞導致,在銅口千兆以太網環境中部分網線的損害是影響性能的一個重要因素。
(4)塊設備參數
CPU等待I/O操作所花費的時間。這個值持續很高通常可能是I/O瓶頸所導致的。
·Average queue length
I/O請求的數量,通常一個磁盤隊列值爲2到3爲最佳情況,更高的值說明系統可能存在I/O瓶頸。
·Average wait
響應一個I/O操作的平均時間。Average wait包括實際I/O操作的時間和在I/O隊列裏等待的時間。
·Transfers per second
描述每秒執行多少次I/O操作(包括讀和寫)。Transfers per second的值與kBytes per second結合起來可以幫助你估計系統的平均傳輸塊大小,這個傳輸塊大小通常和磁盤子系統的條帶化大小相符合可以獲得最好的性能。
·Blocks read/write per second
這個值表達了每秒讀寫的blocks數量,在2.6內核中blocks是1024bytes,在早些的內核版本中blocks可以是不同的大小,從512bytes到4kb。
·Kilobytes per second read/write
按照kb爲單位表示讀寫塊設備的實際數據的數量。
文件系統測試該測哪些指標:(iozone支持)
“
Write: 測試向一個新文件寫入的性能。當一個新文件被寫入時,不僅僅是那些文件中的數據需要被存儲,還包括那些用於定位數據存儲在存儲介質的具體位置的額外信息。這些額外信息被稱作“元數據”。它包括目錄信息,所分配的空間和一些與該文件有關但又並非該文件所含數據的其他數據。拜這些額外信息所賜,Write的性能通常會比Re-write的性能低。
例如: aio_write(), aio_read(), aio_error()。這個測試測量POSIX異步I/O機制的性能。
”---引自:--http://baike.baidu.com/view/3502720.htm
測試文件系統最主要的是是順序讀寫、隨機讀寫、併發測試,另外如果是分佈式文件系統,注意測試環境的帶寬,如果是千兆以太網,帶寬的限制會在125MB/S內(1000Mb/8),所以如果有infiniband 的測試環境,更能真實的體現出分佈式文件系統真正的系統。
比如我最近測的glusterfs,網絡就是瓶頸了.
sar - system activity report
iperf - perform network throughput tests
hdparm - to test local disk performance of any bricks
dbench - Measure disk throughput for simulated netbench run
iozone - Filesystem Benchmark
htop - interactive process viewer
vnstat - a console-based network traffic monitor
iftop - display bandwidth usage on an interface by host
這篇文章除了粗體字是我所寫,其它均爲東截西湊而成,主要是前人總結的已經相當不錯了,但要想看還得到處搜,所以就截放一起了,不好意思了。