不知道别人如何,我是经常用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文件中 |
旧站文章,作者:古哥,如若转载,请注明出处:https://iymark.com/articles/357.html