Vmstat,virtual memmory statistics(虛擬內存統計),主要是對操作系統的內存信息、進程狀態、cpu活動等進行監視,但是它不能對某個進程進行深入的分析。
Procs中r列表示運行和等待CPU時間片的進程數,如果r值長期大於CPU個數,說明CPU資源不夠用啦,可以適當增加CPU數量。Procs中b列表示當前等待資源的進程數,包括等待I/O,內存等。Swpd列表示切換到內存交換區的KB數,一般si,so爲0的話基本不影響系統的性能。
Top是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態。它可以按照系統中當前進程的CPU利用率以及佔用的內存大小進行排序,可以比較快速定位出系統響應遲鈍的原因。如果在前臺執行該命令,它將獨佔前臺,直到用戶終止該程序爲止。
top是一個顯示數據較多的工具,第一行顯示的是系統的開機運行時間,機器的CPU負載信息;第二行顯示當前系統任務的總數,以及各個狀態的進程數;第三行顯示的是CPU資源的使用情況總覽;第四行顯示內存的使用情況總覽;第五行顯示的是內存交換區的使用情況總覽;後面開始是每個進程對資源使用的情況。
3. Nmon
Nmon提供對CPU、內存、網絡、磁盤等系統資源佔用情況分析,相比其他Linux命令獲取到的數據,nmon的功能更爲集中、配置性更強。通過nmon採集到數據之後可以在windows系統中使用nmon_analyser做數據的展示以及分析工作,可視化效果比較好。
4. Uptime
Uptime命令顯示系統已經運行了多長時間,它依次顯示當前時間、系統已經運行了多長時間、目前有多少登陸用戶、系統在過去的1分鐘、5分鐘和15分鐘內的平均負載。
關於系統平均負載,它表示在特定時間間隔內運行隊列中的平均進程數。如果一個進程滿足以下條件則其就會位於運行隊列中:沒有在等待I/O操作的結果;沒有主動進入等待狀態;沒有被停止。
5. Netstat
Netstat命令可以顯示本機的網絡連接情況,監聽端口以及路由表等各種網絡相關信息。Netstat用於顯示與IP、TCP、UDP和ICMP協議相關的統計數據,一般用於檢驗本機各端口的網絡連接情況。
比較常用的可以用次命令查看當前開啓監聽的服務器進程信息以及端口信息。
6. Free
Free是監控Linux使用情況最常用的命令。一般來說,如果應用程序可用內存/系統物理內存>70%時,表明目前系統內存資源比較充足,不影響系統性能;如果應用程序可用內存/系統物理內存<20%時,表明目前系統內存資源比較緊缺,需要釋放其他程序內存或者增加內存;如果應用程序可用內存/系統物理內存在20%-70%之間,表明目前系統的內存資源基本滿足應用需求,暫時不影響系統的性能。
7. Sar
Sar也是一個強大的分析系統性能的工具,它可以比較全面的獲取系統的CPU,運行隊列,磁盤IO,分頁,內存,CPU中斷,網絡等多項數據。
上圖是使用sar獲取系統CPU的整體負責情況,每隔1秒統計一次,統計3次,最後會給出3次的平均值。需要查看其他的數據可以查看手冊使用。
8. Iostat
Iostat是I/O statistics的縮寫,主要功能是對系統的磁盤I/O操作進行監控。它的輸出主要顯示磁盤讀寫操作的統計信息,同時也會給出CPU的使用情況。
這裏顯示的是查看CPU和磁盤的信息,統計間隔2秒,共3次。
9. Valgrind
Valgrind是一款廣泛用於監控程序運行過程進行內存調試、內存泄漏檢測以及性能分析的工具。它會給出內存泄漏的統計,包括definitely lost,indirectly lost,possibly lost,still reachable ,suppressed等,我們可以使用valgrind來測試程序中內存不規範使用的部分。同時對於地址越界問題也可以通過valgrind掃出來,它會統計invalid write的情況。