進程管理工具
htop
語法
htop [-dChusv]
選項
-C --no-color 使用一個單色的配色方案
-d --delay=DELAY 設置延遲更新時間,單位秒
-h --help 顯示htop 命令幫助信息
-u --user=USERNAME 只顯示一個給定的用戶的過程
-p --pid=PID,PID… 只顯示給定的PIDs
-s --sort-key COLUMN 依此列來排序
-v –version 顯示版本信息
實例
CPU[* 0.7%] Tasks: 24, 17 thr; 1 running
Mem[||||||||||#**************** 172M/976M] Load average: 0.00 0.01 0.05
Swp[ 0K/2.00G] Uptime: 03:16:26
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
2843 root 20 0 119M 2304 1476 R 0.7 0.2 0:00.10 htop
638 root 20 0 295M 6024 4644 S 0.7 0.6 0:18.16 /usr/bin/vmtoolsd
.............
1502 root 20 0 540M 18464 5788 S 0.0 1.8 0:00.00 /usr/bin/python -Es /usr/sbin/tuned -l -P
1505 root 20 0 540M 18464 5788 S 0.0 1.8 0:00.00 /usr/bin/python -Es /usr/sbin/tuned -l -P
F1Help F2Setup F3Search F4Filter F5Tree F6SortBy F7Nice -F8Nice +F9Kill F10Quit
參數說明
CPU usage bar: [low-priority/normal/kernel/virtualiz used%] //CPU負載
Memory bar: [used/buffers/cache used/total] //內存消耗
Swap bar: [used used/total] //交換空間
Task:進程總數、當前運行的進程數
Load average:系統為1分鐘、5分鐘、10分鐘的平均負載情況
uptime:系統運行時間
PID: 進程的標識號
USER: 運行進程的用戶
PRI: 進程的優先級
NI: 進程的優先級別值,默認為0,可以進行調整
VIRT: 進程占用的虛擬內存值
RES: 進程占用的物理內存值
SHR: 進程占用的共享內存值
S: 進程的運行狀態,R表示正在運行;S表示休眠,等待喚醒,Z表示僵死狀態
CPU%: 進程占用的CPU使用率
MEM%: 進程占用的物理內存和總內存的百分比
TIME+: 進程啟動后占用總的CPU時間
Command: 進程啟動的啟動命令名稱
快捷鍵 | 功能鍵 | 說明 |
---|---|---|
? | F1 | 查看htop使用說明 |
S | F2 | htop 設定 |
/ | F3 | 搜索,搜索進程名,直接顏色顯示 |
\ | F4 | 進程過濾器:相當于模糊查找,不區分大小寫,下方輸入要搜索的內容后,則界面只顯示搜索到的內容,更加方便查看 |
t | F5 | 顯示幫助信息 |
<,> | F6 | 選擇排序方式 |
[ | F7 | 可減少nice值可以提高對應進程的優先級 |
] | F8 | 可增加nice值,降低對應進程的優先級 |
k | F9 | 可對進程傳遞信號 |
q | F10 | 結束htop |
vmstat 顯示虛擬內存狀態(“Viryual Memor Statics”),但是它可以報告關于進程、內存、I/O等系統整體運行狀態。
語法
vmstat(選項)(參數)
選項
-a:顯示活動內頁;
-f:顯示啟動后創建的進程總數;
-m:顯示slab信息;
-n:頭信息僅顯示一次;
-s:以表格方式顯示事件計數器和內存狀態;
-d:報告磁盤狀態;
-p:顯示指定的硬盤分區狀態;
-S:輸出信息的單位。
實例
[root@localhost ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 706820 1444 161912 0 0 13 1 29 47 0 0 100 0 0
- 參數說明
Procs(進程) r 表示運行隊列(就是說多少個進程真的分配到CPU),服務器目前CPU比較空閑,沒什么程序在跑,當這個值超過了CPU數目,就會出現CPU瓶頸了 b 表示阻塞的進程,這個不多說,進程阻塞 Memory(內存) swpd 虛擬內存已使用的大小,如果大于0,表示你的機器物理內存不足了,如果不是程序內存泄露的原因,那么你該升級內存了或者把耗內存的任務遷移到其他機器。 free 空閑的物理內存的大小 buff Linux/Unix系統是用來存儲,目錄里面有什么內容,權限等的緩存 cache cache直接用來記憶我們打開的文件,給文件做緩沖。(Linux把空閑的物理內存的一部分拿來做文件和目錄的緩存,是為了提高 程序執行的性能,當程序使用內存時,buffer/cached會很快地被使用。) Swap si 每秒從磁盤讀入虛擬內存的大小,如果這個值大于0,表示物理內存不夠用或者內存泄露了,要查找耗內存進程解決掉。我的機器內存充裕,一切正常。 so 每秒虛擬內存寫入磁盤的大小,如果這個值大于0,同上。 IO bi 塊設備每秒接收的塊數量,這里的塊設備是指系統上所有的磁盤和其他塊設備,默認塊大小是1024byte,如果沒什么IO操作,一直是0,如果處理拷貝大量數據(2-3T)的機器上看過可以達到140000/s,磁盤寫入速度差不多140M每秒 bo 塊設備每秒發送的塊數量,例如我們讀取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO過于頻繁,需要調整。 system in 每秒CPU的中斷次數,包括時間中斷 cs 每秒上下文切換次數,例如我們調用系統函數,就要進行上下文切換,線程的切換,也要進程上下文切換,這個值要越小越好,太大了,要考慮調低線程或者進程的數目,例如在apache和nginx這種web服務器中,我們一般做性能測試時會進行幾千并發甚至幾萬并發的測試,選擇web服務器的進程可以由進程或者線程的峰值一直下調,壓測,直到cs到一個比較小的值,這個進程和線程數就是比較合適的值了。系統調用也是,每次調用系統函數,我們的代碼就會進入內核空間,導致上下文切換,這個是很耗資源,也要盡量避免頻繁調用系統函數。上下文切換次數過多表示你的CPU大部分浪費在上下文切換,導致CPU干正經事的時間少了,CPU沒有充分利用,是不可取的。 us 用戶CPU時間,比如加密解密很頻繁的服務器上,可以看到us接近100,r運行隊列達到80(機器在做壓力測試,性能表現不佳)。 cpu sy 系統CPU時間,如果太高,表示系統調用時間長,例如是IO操作頻繁。 id 空閑 CPU時間,一般來說,id + us + sy = 100,一般我認為id是空閑CPU使用率,us是用戶CPU使用率,sy是系統CPU使用率。 wa 等待IO時間,Wa過高時,說明io等待比較嚴重,這可能是由于磁盤大量隨機訪問造成的,也有可能是磁盤的帶寬出現瓶頸。 st 從虛擬設備中獲得的時間
- 每兩秒顯示一次統計信息,一個顯示5次 vmstat 2 5
[root@localhost ~]# vmstat 2 5 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 705656 1444 162656 0 0 9 1 27 44 0 0 100 0 0 0 0 0 705640 1444 162656 0 0 0 0 26 39 0 0 100 0 0 0 0 0 705640 1444 162656 0 0 0 0 31 39 0 1 100 0 0 0 0 0 705640 1444 162656 0 0 0 0 32 43 1 0 100 0 0 0 0 0 705640 1444 162656 0 0 0 0 28 33 0 0 100 0 0
- 顯示磁盤信息 vmstat -d
[root@localhost ~]# vmstat -d disk- ------------reads------------ ------------writes----------- -----IO------ total merged sectors ms total merged sectors ms cur sec sda 5458 1 238084 28256 482 117 26845 85154 0 20 sdb 362 0 4182 498 10 0 24 4 0 0 sr0 11 0 88 67 0 0 0 0 0 0 dm-0 2966 0 186887 25238 585 0 18613 120307 0 19 dm-1 126 0 1872 38 0 0 0 0 0 0 md0 66 0 962 0 1 0 8 0 0 0 dm-2 128 0 1137 24 4 0 4096 8 0 0
- 顯示活躍內存與非活躍內存 vmstat -a
[root@localhost ~]# vmstat -a procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free inact active si so bi bo in cs us sy id wa st 2 0 0 705656 68704 117560 0 0 9 1 27 43 0 0 100 0 0
- 顯示啟動后創建的進程總數 vmstat -f
[root@localhost ~]# vmstat -f 2439 forks
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/96618