不知道別人如何,我是經常用top這個命令,來查下系統行程的占據情況,如果發現,哪個行程占據例外,就去處理下,

命令說明
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個行程的資源占用狀況,類似于Windows的任務管理器,top是一個動態顯示程序,即可以通過用戶按鍵來不斷重繪當前狀態,
如果在前臺執行該命令,它將獨占前臺,直到用戶終止該程式為止,比較準確的說,top命令提供了實時的對系統處理器的狀態監視,
它將顯示系統中CPU最“敏感”的任務串列,該命令可以按CPU使用、記憶體使用和執行時間對任務進行排序;而且該命令的很多特性都可以通過互動式命令或者在個人定制檔案中進行設定,
命令格式
top -引數
命令功能
顯示當前系統正在執行的行程的相關資訊,包括行程ID、記憶體占用率、CPU占用率等
命令引數
以下是top命令后可以接的引數,一般用下-u即可,
-b 是批處理
-c 是 顯示完整的治命令
-I 是 忽略失效程序
-s是 保密模式
-S 是累積模式
-i 是<時間>設定間隔時間
-u是<用戶名>指定用戶名
-p 是<行程號>指定行程
n是<次數>回圈顯示的次數
命令演示

top
直接輸入top,將動態顯示所有行程資訊,然后,摁下shift+>或者shift+<可以切換排序方式,默認以cpu占據情況排序,
[root@210789 ~]# top
top - 23:41:42 up 25 days, 10:55, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 118 total, 2 running, 116 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3635.0 total, 295.2 free, 1605.4 used, 1734.4 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 1740.3 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
336386 memcach+ 20 0 442880 34300 1736 S 0.3 0.9 12:10.84 memcached
380953 root 10 -10 166012 33784 16232 S 0.3 0.9 77:41.24 AliYunDun
1 root 20 0 179172 11116 8168 S 0.0 0.3 0:20.15 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.44 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-kblockd
8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
9 root 20 0 0 0 0 S 0.0 0.0 0:02.06 ksoftirqd/0
10 root 20 0 0 0 0 I 0.0 0.0 2:42.80 rcu_sched
11 root rt 0 0 0 0 S 0.0 0.0 0:00.10 migration/0
12 root rt 0 0 0 0 S 0.0 0.0 0:00.02 watchdog/0
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0
14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1
15 root rt 0 0 0 0 S 0.0 0.0 0:01.81 watchdog/1
16 root rt 0 0 0 0 S 0.0 0.0 0:00.10 migration/1
17 root 20 0 0 0 0 S 0.0 0.0 0:01.80 ksoftirqd/1
19 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/1:0H-kblockd
21 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
22 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 netns
23 root 20 0 0 0 0 S 0.0 0.0 0:00.10 kauditd
26 root 20 0 0 0 0 S 0.0 0.0 0:00.98 khungtaskd
27 root 20 0 0 0 0 S 0.0 0.0 0:00.00 oom_reaper
28 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 writeback
29 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kcompactd0
30 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd
31 root 39 19 0 0 0 S 0.0 0.0 0:04.55 khugepaged
32 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 crypto
33 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kintegrityd
34 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kblockd
35 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 tpm_dev_wq
36 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 md
37 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 edac-poller
38 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdogd
60 root 20 0 0 0 0 S 0.0 0.0 0:00.36 kswapd0
153 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kthrotld
154 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 acpi_thermal_pm
155 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kmpath_rdacd
156 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kaluad
158 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 ipv6_addrconf
159 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kstrp
413 root 0 -20 0 0 0 I 0.0 0.0 0:02.68 kworker/1:1H-xfs-log/vda1
428 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 ata_sff

top -u
輸入top -u user,比如top -u apache可以顯示apache的行程資訊;輸入top -u mysql可以顯示資料庫行程資訊,下面舉例,
[root@210789 ~]# top -u apache
top - 23:43:34 up 25 days, 10:57, 1 user, load average: 0.08, 0.05, 0.01
Tasks: 118 total, 1 running, 117 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.2 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
MiB Mem : 3635.0 total, 291.6 free, 1608.8 used, 1734.6 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 1736.8 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
430740 apache 20 0 2312532 305912 49332 S 0.0 8.2 0:23.45 httpd
430741 apache 20 0 2305464 306720 49784 S 0.0 8.2 0:26.47 httpd
430742 apache 20 0 2297356 290864 48532 S 0.0 7.8 0:22.91 httpd
430940 apache 20 0 2252668 251372 47936 S 0.0 6.8 0:14.52 httpd
432551 apache 20 0 2175152 137612 45244 S 0.0 3.7 0:02.32 httpd
[root@210789 ~]# top -u mysql
top - 23:44:11 up 25 days, 10:58, 1 user, load average: 0.04, 0.04, 0.01
Tasks: 117 total, 1 running, 115 sleeping, 1 stopped, 0 zombie
%Cpu(s): 0.8 us, 1.0 sy, 0.0 ni, 98.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3635.0 total, 290.4 free, 1609.8 used, 1734.7 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 1735.8 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
336344 mysql 20 0 2552992 309912 25192 S 0.0 8.3 10:33.91 mariadbd
后續說明
一般有這些命令就夠了,如果你有更多需求,可以更換引數,自行查看,除了文中提到的shift+<和shift+>命令切換top排序方式,在top命令視窗中,也可以使用下面的命令進行互動操作,即,在top命令下,摁下如下鍵,可以執行相應操作,

h:顯示幫助畫面,給出一些簡短的命令總結說明
k:終止一個行程
i:忽略閑置和僵死行程,這是一個開關式命令
q:退出程式
r:重新安排一個行程的優先級別
S:切換到累計模式
s:改變兩次重繪之間的延遲時間(單位為s),如果有小數,就換算成ms,輸入0值則系統將不斷重繪,默認值是5s
f或者F:從當前顯示中添加或者洗掉專案
o或者O:改變顯示專案的順序
l:切換顯示平均負載和啟動時間資訊
m:切換顯示記憶體資訊
t:切換顯示行程和CPU狀態資訊
c:切換顯示命令名稱和完整命令列
M:根據駐留記憶體大小進行排序
P:根據CPU使用百分比大小進行排序
T:根據時間/累計時間進行排序
W:將當前設定寫入~/.toprc檔案中
如果你在學習C/C++的程序中遇到了問題,可以來加入小編的企鵝圈問小編哦~小編很熱情的(●’?’●)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/212706.html
標籤:其他
