top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。
一、展示内容详解
[root@xsnq ~]# top
top - 10:49:33 up 2:16, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 96 total, 1 running, 95 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 995684 total, 656260 free, 173556 used, 165868 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 673144 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 128028 6608 4136 S 0.0 0.7 0:04.26 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
5 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/u256:0
6 root 20 0 0 0 0 S 0.0 0.0 0:00.39 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 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 0:00.94 rcu_sched
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
第一行 系统概况
- 10:49:33 : 系统当前时间
- 2:16: 系统开机到现在经过了多少时间 (期间也没有重启过)
- 1 user : 当前1用户在线
- load average: 0.00, 0.01, 0.05: 系统1分钟、5分钟、15分钟的CPU负载信息
第二行 进程概况
- Tasks: 任务;
- 96 total:表示当前有 96个任务,也就是 96个进程
- 1 running:1个进程正在运行
- 95 sleeping:95个进程睡眠
- 0 stopped:停止的进程数
- 0 zombie:僵死的进程数
第三行 CPU概况
- %Cpu(s):CPU总体信息
- 0.0%us:用户态进程占用CPU时间百分比,不包含renice值为负的任务占用的CPU的时间。
- 0.3%sy:内核占用CPU时间百分比
- 0.0%ni:改变过优先级的进程占用CPU的百分比
- 99.7%id:空闲CPU时间百分比
- 0.0%wa:等待I/O的CPU时间百分比
- 0.0%hi:CPU硬中断时间百分比
- 0.0%si:CPU软中断时间百分比
- 0.0%st:全称 Steal Time ,分配给运行在其它虚拟机上的任务的实际 CPU 时间百分比
注:这里显示数据是所有cpu的平均值,如果想看每一个cpu的处理情况,按1即可;折叠,再次按1
第四行 物理内存
- KiB Mem:内存的意思
- 995684k total:物理内存总量
- 656260k free:空闲的物理内存量
- 173556k used:使用的物理内存量
- 165868 buff/cache:用作内核缓存的物理内存量
第五行 交换区
- KiB Swap:交换空间
- 2097148k total:交换区总量
- 2097148k free:空闲的交换区量
- 0 used:使用的交换区量
- 673144k avail Mem:虚拟内存总量(有多少内存可用于启动新应用程序而无需交换)
进程信息
- PID:进程的ID
- USER:进程所有者
- PR:进程的优先级别,越小越优先被执行
- NInice:值
- VIRT:进程占用的虚拟内存
- RES:进程占用的物理内存
- SHR:进程使用的共享内存
- S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
- %CPU:进程占用CPU的使用率
- %MEM:进程使用的物理内存和总内存的百分比
- TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
- COMMAND:进程启动命令名称
二、top命令交互操作指令
下面列出一些常用的 top命令操作指令
- q:退出top命令
- Space键:立即刷新
- s:设置刷新时间间隔
- c:显示命令完全模式(显示进程路径)
- t::显示或隐藏进程和CPU状态信息
- m:显示或隐藏内存状态信息
- l:显示或隐藏uptime信息
- f:增加或减少进程显示标志
- S:累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+
- P:按%CPU使用率排行
- T:按MITE+排行
- M:按%MEM排行
- u:指定显示用户进程
- r:修改进程renice值
- kkill:进程
- i:只显示正在运行的进程
- W:保存对top的设置到文件^/.toprc,下次启动将自动调用toprc文件的设置。
- h:帮助命令。
- q:退出
注:强调一下,使用频率最高的是P、T、M,因为通常使用top,我们就想看看是哪些进程最耗cpu资源、占用的内存最多; 注:通过”shift + >”或”shift + <”可以向右或左改变排序列 如果只需要查看内存:可用free命令。只查看uptime信息(第一行),可用uptime命令;
例
1.高亮显示当前运行进程
在top基本视图中,按键盘“b”(打开/关闭加亮效果);
2.显示完整的程序命令
top -c
3.显示指定的进程信息
命令:top -p pidid
[root@xsnq ~]# top -p 1
top - 15:29:24 up 6:56, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 995684 total, 548924 free, 174072 used, 272688 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 672052 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 128028 6608 4136 S 0.0 0.7 0:04.40 systemd
4.监控结果输出到文件
top -d 1 -n 3 > top.log
-d 指定每两次屏幕信息刷新之间的时间间隔
-n 循环显示的次数
三、扩展
htop
htop 是一个 Linux 下的交互式的进程浏览器,可以用来替换Linux下的top命令。与Linux传统的top相比,htop更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。
与top相比,htop有以下优点:
- 可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行。
- 在启动上,比top 更快。
- 杀进程时不需要输入进程号。
- htop
- 支持鼠标操作。
htop使用详解
https://www.cnblogs.com/yqsun/p/5396363.html
本文出现任何错误,请留言私信批评指正。