top 功能说明:实时显示系统中各个进程的资源占用状况。 参数选项: -a 将进程按照使用内存排序(CentOS7及以上没有此参数)。 -b 以批处理的模式显示进程信息,输出结果可以传递给其他程序或写入到文件中。 在这种模式下,top命令不会接受任何输入,一直运行直到到达-n选项设置的阀值,或者按Ctrl+C等组合键终止程序。 -c 显示进程的整个命令路径,而不是只显示命令名称。 -d 指定每两次屏幕信息刷新之间的时间。 -H 指定这个可以显示每个线程的情况,否则就是进程的总的状态。 -i 不显示闲置或者僵死的进程信息。 -n top输出信息更新的次数,完成后将退出top命令。 -p 显示指定的进程信息。 交互式命令: h或? 显示帮助信息。 Z 全局颜色设置。 B 全局字体加粗设置。 l 切换是否显示平均负载和启动时间信息。 t 切换是否显示进程和CPU状态信息。 m 切换是否显示内存信息。 1 数字1,用于多核CPU监控,可监控每个逻辑CPU的状况。 I Irix/Solaris模式。 f 从当前显示列表中添加或删除项目。按"a~z"键即可显示或隐藏对应的列,最后按回车键确认。 o 改变top输出信息中显示项目的顺序。 按小写的"a-z"键可以将相应的列向右移动,而按大写的"A~Z"键可以将相应的列向左移动,最后按回车键确认。 F或O 选择排序的列。 <,> 移动选择排序的列,"<"选择左邻一列排序,">"选择右邻一列排序。 R 切换正常/反转排序。 H 切换是否显示线程信息。 c 切换是否显示完整命令行和命令名称信息。 i 切换是否显示闲置进程和僵死进程。 S 切换到累计模式。 x 以高亮的形式排序对应的列,需要结合b/z使用。 y 高亮运行的进程,需要结合b/z使用。 z 打开/关闭颜色。 b 打开/关闭加粗。 u 显示指定用户相关的进程信息。 n或# 设置显示进程的最大行数。 k 终止一个进程,系统将提示用户输入一个需要终止进程的PID。 r 重新设置一个进程的优先级,系统提示用户输入需要改变的进程PID,以及需要设置的进程优先级值。 输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。 d或s 改变top输出信息两次刷新之间的时间,系统将提示输入新的时间,单位是s。 如果是小数,则换算成ms;如果输入0,那么系统将会不断刷新,默认刷新时间是3s。 需要注意的是,如果设置太小的时间,则可能会引起系统不断刷新,无法看清输出显示情况,而且系统负载也会加大。 W 将当前top设置写入 "~/.toprc" 文件中。 q 退出top显示。 范例:显示进程信息 [root@testdb62 ~]# top top - 14:24:07 up 69 days, 22:11, 2 users, load average: 0.01, 0.02, 0.05 Tasks: 120 total, 1 running, 119 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 1.6 sy, 0.0 ni, 98.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 8173976 total, 5385572 free, 413580 used, 2374824 buff/cache KiB Swap: 8257532 total, 8257532 free, 0 used. 7396152 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 191128 3384 1896 S 0.0 0.0 24:29.88 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:02.68 kthreadd 4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 6 root 20 0 0 0 0 S 0.0 0.0 0:46.02 ksoftirqd/0 7 root rt 0 0 0 0 S 0.0 0.0 0:23.09 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 16:31.76 rcu_sched 10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain 说明: 第一行,任务队列信息,同uptime命令的执行结果。 14:24:07 当前系统时间。 up 69 days, 22:11 系统已经运行的时间是69天22小时11分。 2 users 当前有2个用户登录系统。 load average: 0.01, 0.02, 0.05 后面三个数分别是1分钟、5分钟、15分钟的平均负载情况 第二行,Tasks为任务(进程),从上面的信息可以看出,系统现在共有120个进程, 其中处于运行状态的有1个,119个在休眠(sleep),stoped状态0个,zombie状态(僵死)的有0个。 第三行,CPU状态信息 0.0 us 用户空间占用CPU的百分比。 1.6 sy 内核空间占用CPU的百分比。 0.0 ni 改变过优先级的进程占用CPU的百分比。 98.4 id 空闲CPU的百分比。 0.0 wa I/O等待占用CPU的百分比。 0.0 hi 硬中断(Hardware IRQ)占用CPU的百分比。 0.0 si 软中断(Software Interrupts)占用CPU的百分比。 0.0 st 虚拟机占用CPU的百分比。 第四行,内存状态 8173976 total 物理内存总量。 5385572 free 空闲内存总量。 413580 used 使用中的内存总量。 2374824 buff/cache 缓冲的内存量。 第五行,swap交换分区信息 8257532 total 交换区总量。 8257532 free 空闲交换区总量。 0 used 使用的交换区总量。 7396152 avail Mem 可用的内存量。 计算真正可用的内存数为:free + buff/cache 对内存进行监控是,要关注wap交换分区的used,如果这个数值还在不断地变化, 则说明内核正在不断进行内存和swap的数据交换,这表示内存真的不够用了或者程序运行有内存溢出问题。 第七行,各进程(任务)的状态监控。 PID 进程ID USER 进程所有者。 PR 进程优先级。 NI nice值,负值表示高优先级,正值表示低优先级。 VIRT 进程使用的虚拟内存总量,单位为kb。 RES 进程使用、未被换出的物理内存大小,单位为kb。 SHR 共享内存大小,单位为kb。 S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程。 %CPU 上次更新到现在CPU时间占用百分比。 %MEM 进程使用的物理内存百分比。 TIME+ 进程使用CPU时间总计,单位1/100秒。 COMMAND 进程名称(命令名/命令行)。 范例:显示多核不同核CPU的信息 在top基本视图中,按数字1,可监控每个逻辑CPU的状况,再按数字1,返回到基本视图界面。 [root@testdb62 ~]# top top - 15:41:53 up 69 days, 23:29, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 121 total, 1 running, 120 sleeping, 0 stopped, 0 zombie %Cpu0 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 8173976 total, 5384812 free, 414408 used, 2374756 buff/cache KiB Swap: 8257532 total, 8257532 free, 0 used. 7395324 avail Mem 范例:将进程按照使用内存排序(CentOS7及以上没有此参数) [root@testdb62 ~]# top -a top - 15:55:54 up 74 days, 22:31, 1 user, load average: 0.06, 0.10, 0.08 Tasks: 214 total, 1 running, 213 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.2%sy, 0.0%ni, 99.6%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 10362812k total, 7115712k used, 3247100k free, 146320k buffers Swap: 20922316k total, 29836k used, 20892480k free, 6059892k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1898 mysql 20 0 4868m 377m 5876 S 0.7 3.7 11332:19 mysqld 2542 root 20 0 387m 79m 548 S 0.3 0.8 158:49.11 memcached 2022 root 20 0 697m 22m 3652 S 0.0 0.2 96:19.19 frpc 13730 zabbix 20 0 219m 5660 1092 S 0.0 0.1 119:12.13 zabbix_proxy 1151 root 20 0 249m 5072 916 S 0.0 0.0 3:01.19 rsyslogd 15232 postfix 20 0 81252 4124 3000 S 0.0 0.0 0:00.01 local 15230 postfix 20 0 81096 3536 2632 S 0.0 0.0 0:00.01 cleanup 15233 postfix 20 0 80988 3464 2572 S 0.0 0.0 0:00.00 bounce 6062 postfix 20 0 80952 3420 2540 S 0.0 0.0 0:00.04 pickup