不知道别人如何,我是经常用top这个命令,来查下系统进程的占据情况。如果发现,哪个进程占据异常,就去处理下。



centos路由跟踪 80 端口 centos 追踪路由_centos路由查看命令


命令说明

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。

如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确的说,top命令提供了实时的对系统处理器的状态监视。

它将显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用、内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。

命令格式

top -参数

命令功能

显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等

命令参数

以下是top命令后可以接的参数,一般用下-u即可。

-b 是批处理

-c 是 显示完整的治命令

-I 是 忽略失效过程

-s是 保密模式

-S 是累积模式

-i 是设置间隔时间

-u是指定用户名

-p 是指定进程

n是循环显示的次数

命令演示


centos路由跟踪 80 端口 centos 追踪路由_centos路由跟踪 80 端口_02


top

直接输入top,将动态显示所有进程信息。然后,摁下shift+>或者shift+

[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


centos路由跟踪 80 端口 centos 追踪路由_sed_03


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


centos路由跟踪 80 端口 centos 追踪路由_centos路由跟踪 80 端口_04


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+命令切换top排序方式,在top命令窗口中,也可以使用下面的命令进行交互操作。即,在top命令下,摁下如下键,可以执行相应操作。


centos路由跟踪 80 端口 centos 追踪路由_sed_05


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文件中