在Linux的top命令输出中,各列的含义
在Linux的top
命令输出中,各列的含义如下:
PID(进程ID)
• 含义:进程的唯一标识符,用于唯一标识系统中的每个进程。
• 示例:806
表示MySQL进程的ID。
USER(用户)
• 含义:进程的所属用户,即启动该进程的用户名或UID。
• 示例:mysql
表示该进程由MySQL用户启动。
PR(优先级)
• 含义:进程的动态调度优先级(Priority),由内核自动调整。值越小优先级越高,范围通常为 0-39(普通进程)或 RT/负数(实时进程)。
• 细节:
• 普通进程的 PR = 20 + NI
(NI为进程的nice值)。
• 实时进程显示为RT
或负数(如-2
,对应实时优先级98)。
NI(Nice值)
• 含义:用户可调整的优先级偏移量(Nice Value),范围 -20(最高)到19(最低)。
• 作用:通过renice
命令调整NI值,普通用户只能降低优先级(NI≥0),需sudo
权限提高优先级(NI<0)。
VIRT(虚拟内存)
• 含义:进程使用的总虚拟内存(Virtual Memory),包括代码、数据、共享库及映射文件,单位为KiB。
• 公式:VIRT = SWAP + RES
。
RES(常驻内存)
• 含义:进程当前实际占用的物理内存(Resident Memory),单位为KiB。
• 细节:包含与其他进程共享的内存部分(如动态库)。
SHR(共享内存)
• 含义:进程与其他进程共享的内存(Shared Memory),单位为KiB。
• 示例:动态库代码段会被多个进程共享,因此计入SHR
。
S(进程状态)
• 含义:进程的当前状态,常见值包括:
• R:运行中(Running)
• S:睡眠(Sleeping,等待事件)
• D:不可中断的睡眠(通常因I/O阻塞)
• Z:僵尸进程(已终止但未被父进程回收)。
%CPU(CPU使用率)
• 含义:进程在最近一次刷新周期内占用的CPU时间百分比。
• 注意:多线程进程可能超过100%(如使用8核CPU的进程可能显示800%)。
%MEM(内存使用率)
• 含义:进程占用的物理内存占系统总内存的百分比。
TIME+(累计CPU时间)
• 含义:进程自启动以来累计使用的CPU时间,格式为分钟:秒.百分秒
。
• 注意:与进程实际运行时间不同,仅统计CPU执行时间(空闲等待不计入)。
COMMAND(命令)
• 含义:启动进程的命令名称或完整命令行(通过c
键切换显示模式)。
• 示例:mysqld
表示MySQL服务进程。
总结
列名 | 关键点 |
---|---|
PR | 实时进程显示RT ,普通进程由NI值计算 |
NI | 负值需sudo 权限设置,普通用户只能降低优先级 |
VIRT | 包含所有虚拟内存(如映射文件),可能远大于实际使用量 |
RES | 实际物理内存占用,包含共享部分 |
SHR | 共享内存可被其他进程复用(如动态库代码) |
TIME+ | 仅统计CPU执行时间,与进程存活时间无关 |
通过top
界面按f
键可自定义显示列,按Shift + <
或>
可调整排序方式(如按CPU或内存排序)。