Linux - top命令
ps 命令可以一次性给出当前系统中进程状态,但使用此方式得到的信息缺乏时效性,并且,如果管理员需要实时监控进程运行情况,就必须不停地执行 ps 命令,这显然是缺乏效率的。
为此,Linux 提供了 top 命令。top 命令可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态。
(base) [fuly1@server ~]$ top
选项:
-d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒;
-b:使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中;
-n 次数:指定 top 命令执行的次数。一般和"-"选项合用;
-p 进程PID:仅查看指定 ID 的进程;
-s:使 top 命令在安全模式中运行,避免在交互模式中出现错误;
-u 用户名:只监听某个用户的进程;
在 top 命令的显示窗口中,还可以使用如下按键,进行一下交互操作:
? 或 h:显示交互模式的帮助;
P:按照 CPU 的使用率排序,默认就是此选项;
M:按照内存的使用率排序;
N:按照 PID 排序;
T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序;
k:按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号;
r:按照 PID 给某个进程重设优先级(Nice)值;
q:退出 top 命令;
第一部分是前五行,显示的是整个系统的资源使用状况,我们就是通过这些输出来判断服务器的资源使用状态的;
第一行为任务队列信息;第二行为进程信息;第三行为 CPU 信息;第四行为物理内存信息;
第五行为交换分区(swap)信息
第二部分从第六行开始,显示的是系统中进程的信息;
PID:进程的 ID。
USER:该进程所属的用户。
PR:优先级,数值越小优先级越高。
NI:优先级,数值越小、优先级越高。
VIRT:该进程使用的虚拟内存的大小,单位为 KB。
RES:该进程使用的物理内存的大小,单位为 KB。
SHR:共享内存大小,单位为 KB。
S:进程状态。
%CPU:该进程占用 CPU 的百分比。
%MEM:该进程占用内存的百分比。
TIME+:该进程共占用的 CPU 时间。
COMMAND:进程的命令名。
top 命令常用的实例
- 如果只想让 top 命令查看某个进程,就可以使用 "-p 选项";
- 在 top 命令的交互界面中按 "q" 键会退出 top 命令,也可以按 "?" 或 "h" 键得到 top 命令交互界面的帮助信息,还可以中止某个进程:按"k"键,会提示输入要杀死进程的PID,接下来 top 命令提示我们输入信号,信号 9 代表强制中止,这时就能够强制中止该PID进程了;
- 如果要改变某个进程的优先级,就要利用 "r" 交互命令。需要注意的是,我们能够修改的只有 Nice 的优先级,而不能修改 Priority 的优先级。输入"r"交互命令之后,提示输入要修改优先级的进程的PID,输入PID后,需要再输入Nice的优先级号;
- 如果在操作终端执行 top 命令,则并不能看到系统中所有的进程,默认看到的只是 CPU 占比靠前的进程。如果我们想要看到所有的进程,则可以把 top 命令的执行结果重定向到文件中。不过 top 命令是持续运行的,这时就需要使用 "-b" 和 "-n" 选项了。
# 查看所有进程
(base) [fuly1@server ~]$ top -b
# 让top命令只执行一次,然后把执行结果保存到top.log文件中,这样也能看到所有的进程
(base) [fuly1@server ~]$ top -b -n 1 > /root/top.log