Vmstatwindows
Vmstat,virtual memmory statistics(虛擬內存統計),主要是對操做系統的內存信息、進程狀態、cpu活動等進行監視,可是它不能對某個進程進行深刻的分析。
緩存
Procs中r列表示運行和等待CPU時間片的進程數,若是r值長期大於CPU個數,說明CPU資源不夠用啦,能夠適當增長CPU數量。
Procs中b列表示當前等待資源的進程數,包括等待I/O,內存等。Swpd列表示切換到內存交換區的KB數,通常si,so爲0的話基本不影響系統的性能。Cache是page cache的內存數量,Linux會把空閒的物理內存的一部分拿來作文件和目錄的緩存,以便提升程序執行的性能。若是cache的值較大的話,說明緩存了太多的文件,若是bi值小的話,說明文件系統效率比較高。Si是每秒從磁盤讀入虛擬內存的大小,若是這個值一直大於0,表示物理內存不夠用或者內存泄露了,須要查找耗內存進程解決掉。Bi,bo是表示從塊設備讀入數據的總量以及寫到塊設備的數據總量。若是bi+bo值比較大,並且wa值也比較大的話,說明系統磁盤I/O可能有問題,性能不高。服務器
In和cs是每秒鐘的設備中斷數以及上下文切換數。它們很大的話,表面內核消耗的CPU時間較多。網絡
Top工具
Top是一個動態顯示過程,便可以經過用戶按鍵來不斷刷新當前狀態。它能夠按照系統中當前進程的CPU利用率以及佔用的內存大小進行排序,能夠比較快速定位出系統響應遲鈍的緣由。若是在前臺執行該命令,它將獨佔前臺,直到用戶終止該程序爲止。
性能
top是一個顯示數據較多的工具,第一行顯示的是系統的開機運行時間,機器的CPU負載信息;第二行顯示當前系統任務的總數,以及各個狀態的進程數;第三行顯示的是CPU資源的使用狀況總覽;第四行顯示內存的使用狀況總覽;第五行顯示的是內存交換區的使用狀況總覽;後面開始是每一個進程對資源使用的狀況。測試
Nmonspa
Nmon提供對CPU、內存、網絡、磁盤等系統資源佔用狀況分析,相比其餘Linux命令獲取到的數據,nmon的功能更爲集中、配置性更強。經過nmon採集到數據以後能夠在windows系統中使用nmon_analyser作數據的展現以及分析工做,可視化效果比較好。
操作系統
因爲通常Linux系統都不自帶nmon,使用以前須要下載安裝。3d
Uptime
Uptime命令顯示系統已經運行了多長時間,它依次顯示當前時間、系統已經運行了多長時間、目前有多少登錄用戶、系統在過去的1分鐘、5分鐘和15分鐘內的平均負載。
關於系統平均負載,它表示在特定時間間隔內運行隊列中的平均進程數。若是一個進程知足如下條件則其就會位於運行隊列中:沒有在等待I/O操做的結果;沒有主動進入等待狀態;沒有被中止。
Netstat
Netstat命令能夠顯示本機的網絡鏈接狀況,監聽端口以及路由表等各類網絡相關信息。Netstat用於顯示與IP、TCP、UDP和ICMP協議相關的統計數據,通常用於檢驗本機各端口的網絡鏈接狀況。 比較經常使用的能夠用次命令查看當前開啓監聽的服務器進程信息以及端口信息。
Free
Free是監控Linux使用狀況最經常使用的命令。
「Free -m」能夠查看以M爲單位的使用狀況,這裏主要觀察free和cached兩列。
通常來講,若是應用程序可用內存/系統物理內存>70%時,代表目前系統內存資源比較充足,不影響系統性能;若是應用程序可用內存/系統物理內存<20%時,代表目前系統內存資源比較緊缺,須要釋放其餘程序內存或者增長內存;若是應用程序可用內存/系統物理內存在20%-70%之間,代表目前系統的內存資源基本知足應用需求,暫時不影響系統的性能。
Sar
Sar也是一個強大的分析系統性能的工具,它能夠比較全面的獲取系統的CPU,運行隊列,磁盤IO,分頁,內存,CPU中斷,網絡等多項數據。
上圖是使用sar獲取系統CPU的總體負責狀況,每隔1秒統計一次,統計3次,最後會給出3次的平均值。須要查看其餘的數據能夠查看手冊使用。
Iostat
Iostat是I/O statistics的縮寫,主要功能是對系統的磁盤I/O操做進行監控。它的輸出主要顯示磁盤讀寫操做的統計信息,同時也會給出CPU的使用狀況。
這裏顯示的是查看CPU和磁盤的信息,統計間隔2秒,共3次。
Valgrind
Valgrind是一款普遍用於監控程序運行過程進行內存調試、內存泄漏檢測以及性能分析的工具。它會給出內存泄漏的統計,包括definitely lost,indirectly lost,possibly lost,still reachable ,suppressed等,咱們可使用valgrind來測試程序中內存不規範使用的部分。同時對於地址越界問題也能夠經過valgrind掃出來,它會統計invalid write的狀況。