linux系統監控命令

1.Linux命令行工具

推薦:CentOS 7ios

1.1 top命令windows

top命令的輸出以下:緩存

Java性能監控與調優工具(Linux、Windows篇)

 

top命令的輸出能夠分爲兩部分:前半部分是系通通計信息,後半部分是進程信息。在統計信息中,網絡

第1行是任務隊列信息,它的結果等同於 uptime 命令。從左到右依次表示:系統當前時間、系統運行時間、當前登陸用戶數。最後的 load average 表示系統的平均負載,即任務隊列的平均長度,這3個值分別表示1分鐘、5分鐘、15分鐘到如今的平均值。函數

第2行是進程統計信息,分別有進程總數量、正在運行的進程數、睡眠進程數、中止的進程數、殭屍進程數。工具

第3行是CPU統計信息,us 表示用戶空間CPU的佔用率、sy表示內核空間CPU佔用率、ni表示用戶進程空間改變過優先級的進程CPU的佔用率、id表示空閒CPU佔用率、wa表示等待輸入輸出的CPU的時間百分比、hi表示硬件中斷請求、si表示軟件中斷請求。性能

第4行,在Mem行中,從左到右,依次表示物理內存總量、已使用的物理內存。空閒物理內存、內核緩衝使用量。命令行

第5行,Swap行依次表示交換區總量、空閒交換區大小、緩衝交換區大小。線程

top 命令的第2部分是進程信息區,顯示了系統內各個進程的資源使用狀況。在這張表格中,可能出現的列及其含義以下:3d

  • PID:進程id。
  • PPID:父進程id。
  • RUSER:Real user name。
  • UID:進程全部者的用戶id。
  • USER:進程全部者的用戶名。
  • GROUP:進程全部者組名。
  • TTY:啓動進程的終端名。不是從終端啓動的進程則顯示爲?。
  • PR:優先級。
  • NI:nice值。負值表示高優先級,正值表示低優先級。
  • P:最後使用的CPU,僅在多CPU環境下有意義。
  • %CPU:上次更新到如今的CPU時間佔用百分比。
  • TIME:進程使用的CPU時間總計,單位秒。
  • TIME+:進程使用的CPU時間總計,單位1/100秒。
  • %MEM:進程使用的物理內存百分比。
  • VIRT:進程使用的虛擬內存總量,單位KB。VIRT=SWAP+RES。
  • SWAP:進程使用的虛擬內存中被換出的大小,單位KB。
  • RES:進程使用的、未被換出的物理內存大小,單位KB。RES=CODE+DATA。
  • CODE:可執行代碼佔用的物理內存大小,單位KB。
  • DATA:可執行代碼之外的部分(數據段+棧)佔用的物理內存大小,單位KB。
  • SHR:共享內存大小,單位KB。
  • nFLT:頁面錯誤次數。
  • nDRT:最後一次寫入到如今,被修改過的頁面數。
  • S:進程狀態。D表示不可中斷的睡眠狀態;R表示運行;S表示睡眠;T表示跟蹤/中止;Z表示殭屍進程。
  • COMMAND:命令名/命令行。
  • WCHAN:若該進程在睡眠,則顯示睡眠中的系統函數名。
  • Flags:任務標誌,參考 sched.h。

在top命令下,按下 f 鍵,能夠進行列的選擇,使用 o 鍵能夠更改列的顯示順序。此外,top 命令還有一些實用的交互指令:

  • h:顯示幫助信息。
  • k:終止一個進程。
  • q:退出程序。
  • c:切換顯示命令名稱和完整命令行。
  • M:根據駐留內存大小進行排序。
  • P:根據CPU使用百分比大小進行排序。
  • T:根據時間/累計時間進行排序。
  • 數字1:顯示全部CPU負載狀況。

1.2 sar命令

sar命令也是 Linux 系統中最重要的性能監測工具之一。它能夠週期性地對內存和CPU使用狀況進行採樣。基本語法以下:

sar [options] [<interval> [<count>] ]

interval 和 count 分別表示採樣週期和採樣數量。

options 選項能夠指定sar命令對哪些性能數據進行採樣(不一樣版本的sar命令,選項可能有所不一樣,能夠經過sar-h命令查看)。

  • -A:全部報告的總和。
  • -u:CPU利用率。
  • -d:硬盤使用報告。
  • -b:I/O 的狀況。
  • -q:查看隊列長度。
  • -r:內存使用統計信息。
  • -n:網絡信息統計。
  • -o:採樣結果輸出到文件。

下列使用sar命令獲取內存使用狀況,每秒鐘採樣一次,共計採樣3次:

Java性能監控與調優工具(Linux、Windows篇)

 

  • kbmemfree 空閒的物理內存大小
  • kbmemused 使用中的物理內存大小
  • %memused 物理內存使用率
  • kbbuffers 內核中做爲緩衝區使用的物理內存大小,kbbuffers和kbcached:這兩個值就是free命令中的buffer和cache.
  • kbcached 緩存的文件大小
  • kbcommit 保證當前系統正常運行所須要的最小內存,即爲了確保內存不溢出而須要的最少內存(物理內存+Swap分區)
  • commit 這個值是kbcommit與內存總量(物理內存+swap分區)的一個百分比的值

1.3 vmstat命令

vmstat 和 sar 工具相似,能夠指定採樣週期、採樣頻率,統計CPU、內存使用狀況、swap使用狀況等信息。

Java性能監控與調優工具(Linux、Windows篇)

 

Java性能監控與調優工具(Linux、Windows篇)

 

1.4 iostat命令

iostat能夠提供詳細的磁盤IO信息。基本使用以下:

Java性能監控與調優工具(Linux、Windows篇)

 

iostat 1 2 該命令顯示了CPU的使用概況和磁盤IO的信息。輸出信息每1秒採樣1次,合計採樣2次。若是隻須要顯示磁盤狀況,不須要顯示CPU使用狀況,則可使用命令:iostat -d 1 2

-d 表示輸出磁盤使用狀況。結果表中,各個列的含義以下:

  • tps:該設備每秒的傳輸次數。
  • kB_read/s:每秒從設備讀取的數據量。
  • kB_wrtn/s:每秒向設備寫入的數據量。
  • kB_read:讀取的總數據量。
  • kB_wrtn:寫入的總數據量。

若是須要獲得更多的統計信息,可使用-x選項。如:iostat -x 1 2

1.5 pidstat工具

pidstat是一個性能強大的性能監測工具,它也是sysstat的組件之一。

1)CPU使用率監控

先是經過jps命令找到Java程序的PID,

Java性能監控與調優工具(Linux、Windows篇)

 

而後使用pidstat命令輸出程序的CPU使用狀況。

Java性能監控與調優工具(Linux、Windows篇)

 

pidstat 的參數-p用於指定進程ID,-u表示對CPU使用率的監控。最後的參數1 3表示每秒鐘採樣1次,合計採樣3次。從這個輸出中能夠看到,該應用程序CPU佔用率達0.00%。pidstat能夠進一步監控線程的信息。 使用如下命令:

pidstat -p 3489 1 3 -u -t

-t 參數將系統性能的監控細化到線程級別。

使用如下命令能夠導出指定Java應用程序的全部線程:

jstack -l 3489 >/usr/local/t.txt

2)I/O使用監控

磁盤I/O也是常見的性能瓶頸之一,使用pidstat也能夠監控進程內線程的I/O狀況。

在程序運行過程當中,使用如下命令監控程序I/O使用狀況。其中28475是經過jps命令查詢到的進程ID,-d參數代表監控對象爲磁盤I/O。1 3表示每秒鐘採樣一次,合計採樣3次。

pidstat -p 28475 -d -t 1 3

3)內存監控

使用 pidstat 命令。還能夠監控指定進程的內存使用狀況。

Java性能監控與調優工具(Linux、Windows篇)

 

  • minflt/s:表示該進程每秒 minor faults(不須要從磁盤中調出內存頁)的總數。
  • majflt/s:表示該進程每秒 major faults(須要從磁盤中調出內存頁)的總數。
  • VSZ:表示該進程使用的虛擬內存大小,單位爲KB。
  • RSS:表示該進程佔用的物理內存大小,單位爲KB。
  • %MEM:表示佔用內存比率。

2.Windows工具

2.1 任務管理器

快捷鍵 Ctrl+ Alt+ .

Java性能監控與調優工具(Linux、Windows篇)

 

Java性能監控與調優工具(Linux、Windows篇)

 

2.2 perfmon性能監控工具

能夠用於監視CPU使用率、內存使用率、硬盤讀寫速度、網絡速度等。Perfmon提供了圖表化的系統性能實時監視器、性能日誌和警報管理,系統的性能日誌可定義爲二進制文件、文本文件、SQLSERVER表記錄等方式,能夠很方便地使用第三方工具進行性能分析。perfmon.exe 文件位於C:WindowsSystem32目錄下。

快捷鍵 win+ R打開運行,輸入 perfmon :

Java性能監控與調優工具(Linux、Windows篇)

 

打開性能監控工具

Java性能監控與調優工具(Linux、Windows篇)

 

點擊綠色的+號添加計數器,Process表示進程,Thread表示線程。

下面咱們將對QQ的部分線程進行監控,選中實例,點擊添加,肯定。

Java性能監控與調優工具(Linux、Windows篇)

 

生成報告。能夠看到線程ID,佔用CPU的多少。

Java性能監控與調優工具(Linux、Windows篇)

 

2.3 Process Explorer

由Sysinternals開發的Windows系統和應用程序監視工具,目前已併入微軟旗下。不只結合了Filemon(文件監視器)和Regmon(註冊表監視器)兩個工具的功能,還增長了多項重要的加強功能。包括穩定性和性能改進、強大的過濾選項、修正的進程樹對話框(增長了進程存活時間圖表)、可根據點擊位置變換的右擊菜單過濾條目、集成帶源代碼存儲的堆棧跟蹤對話框、更快的堆棧跟蹤、可在 64位 Windows 上加載 32位 日誌文件的能力、監視映像(DLL和內核模式驅動程序)加載、系統引導時記錄全部操做等。

下載地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer

Java性能監控與調優工具(Linux、Windows篇)

 

2.4 pslist命令行

pslist是一個windows下的命令行工具。

下載地址:https://docs.microsoft.com/en-us/sysinternals/downloads/pslist

基本用法以下:

pslist [-d] [-m] [-x] [-t] [-s [n] [-r n] [name|pid]
  • -d:顯示線程詳細信息。
  • -m:顯示內存詳細信息。
  • -x:顯示進程、內存和線程信息。
  • -t:顯示進程間父子關係。
  • -s[n]:進入監控模式。n指定程序運行時間,使用ESC鍵退出。
  • -r n:指定監控模式下的刷新時間,單位爲秒。
  • name:指定監控的進程名稱,pslist將監控全部以給定名字開頭的進程。
  • -e:使用精確匹配,打開這個開關,pslist將只監控name參數指定的進程。
  • pid:指定進程ID。

顯示的欄位:

  • Pri:優先級
  • Thd:線程數
  • Hnd:句柄數
  • VM:虛擬內存
  • WS:工做集
  • Priv:專用虛擬內存
  • Priv Pk:專用虛擬內存峯值
  • Faults:頁面錯誤
  • NonP:非頁面緩衝池
  • ge:頁面緩衝池
  • Cswtch:上下文切換
相關文章
相關標籤/搜索