在Linux系统中,top命令是一个强大的工具,用于实时监控系统性能,包括CPU、内存、交换空间的使用情况以及正在运行的进程的详细信息。执行top命令后,屏幕会被分割成几个部分来展示这些信息。以下是对top命令输出资源的详细解释:
一、屏幕顶部:系统状态摘要
1. 当前时间:显示系统时间以及自上次启动以来的时间长度。
2. 系统负载:显示系统的负载情况,即任务队列的平均长度,通常有三个数值,分别代表1分钟、5分钟、15分钟前的平均值。
3. 进程统计:
• 总进程数:显示所有进程的数量,并区分出运行中、休眠、停止和僵尸进程的数量。
• CPU信息:
• %us:用户空间占用CPU的百分比。
• %sy:内核空间占用CPU的百分比。
• %ni:用户进程空间内改变过优先级的进程占用CPU的百分比。
• %id:空闲CPU百分比。
• %wa:等待输入输出的CPU时间百分比。
• %hi:硬中断(Hardware IRQ)占用CPU百分比。
• %si:软中断(Software Interrupts)占用CPU百分比。
• %st:由于虚拟机管理程序偷取的时间(仅适用于虚拟化环境)。
4. 内存信息:
• 总物理内存:系统的总物理内存量。
• 已用内存:当前已经使用的物理内存量。
• 空闲内存:当前空闲的物理内存量。
• 缓存和缓冲区:用作内核缓存的内存量。
5. 交换空间信息:
• 总交换空间:系统的总交换空间量。
• 已用交换空间:当前已经使用的交换空间量。
• 空闲交换空间:当前空闲的交换空间量。
• 缓存使用的交换空间:用作缓存的交换空间量。
二、进程信息
在top命令的输出中,从第八行开始列出当前系统中的进程信息,每个进程占用一行,包括以下字段:
1. PID:进程ID,即进程的唯一标识符。
2. USER:进程所有者的用户名。
3. PR:进程优先级。
4. NI:nice值,负值表示更高优先级,正值表示更低优先级。
5. VIRT:进程使用的虚拟内存总量,单位为kb。
6. RES:进程使用的实际物理内存(常驻集大小),单位为kb。
7. SHR:进程使用的共享内存大小,单位为kb。
8. S:进程状态,其中D表示不可中断的睡眠状态,R表示运行状态,S表示休眠状态,T表示跟踪/停止状态,Z表示僵尸进程。
9. %CPU:上次更新到现在的CPU时间占用百分比。
10. %MEM:进程使用的物理内存百分比。
11. TIME+:进程累计使用的CPU时间,单位为1/100秒。
12. COMMAND:启动该进程的命令名称或命令行。
三、交互式操作
top命令还支持一系列交互式操作,用户可以通过键盘输入命令来控制top的行为。例如:
1. P:按CPU使用率排序显示进程。
2. M:按内存使用量排序显示进程。
3. T:按进程使用的时间累计排序显示。
4. k:给某一个PID发送信号,可以用来终止进程。
5. r:给某个PID重新定制一个nice值(即优先级)。
6. q:退出top命令。
7. d或s:更改刷新间隔时间。
8. f:进入字段管理器,选择要显示的字段。
9. o:设置当前排序规则。
此外,还可以通过命令行参数来自定义top命令的行为。例如,使用-d参数设置刷新间隔时间,使用-p参数指定要监视的特定进程ID,使用-u参数指定要显示的用户进程等。
综上所述,top命令是Linux系统中一个非常重要的性能分析工具,通过它用户可以实时了解系统的整体性能和各个进程的资源使用情况。
详细示例:
一、系统状态摘要(屏幕顶部)
1. 当前系统时间:显示系统当前的时间。
• 示例:19:31:40
2. 系统运行时间:显示系统自上次启动以来的时间长度。
• 示例:up 776 days, 6:43,表示系统已经运行了776天6小时43分钟。
3. 当前登录用户数:显示当前登录到系统的用户数。
• 示例:2 users
4. 系统平均负载:显示系统最近1分钟、5分钟和15分钟的平均负载。
• 示例:load average: 0.21, 0.21, 0.25
• 负载平均值小于或等于CPU核心数时,系统运行良好,没有CPU资源瓶颈。
• 负载平均值大于CPU核心数时,系统开始变得繁忙,可能会出现CPU资源不足的情况。
5. 任务(进程)状态:显示进程总数以及处于不同状态的进程数(运行中、休眠、停止、僵尸)。
• 示例:Tasks: 492 total, 1 running, 491 sleeping, 0 stopped, 0 zombie
6. CPU使用情况:显示用户空间、内核空间、改变优先级的进程、空闲、等待I/O操作、硬件中断、软件中断以及虚拟化环境中其他虚拟机占用的CPU时间百分比。
• 示例:%Cpu(s): 2.0us, 1.2sy, 0.0ni, 96.7id, 0.0wa, 0.0hi, 0.0si, 0.0st
7. 内存使用情况:显示总的物理内存、空闲内存、已使用内存以及被缓冲和缓存占用的内存大小。
• 示例:GiB Mem: 31.3 total, 0.8 free, 26.4 used, 4.1buff(https://baike.baidu.com/item/buff/829)/cache
8. 交换分区使用情况:显示交换分区的总大小、空闲大小、已使用大小以及可供新进程使用的内存大小。
• 示例:GiB Swap: 7.9 total, 5.5 free, 2.4 used. 4.0 avail Mem
二、进程列表(屏幕下方)
进程列表显示了当前系统中正在运行的进程的详细信息,包括:
1. PID:进程ID。
2. USER:启动进程的用户。
3. PR:进程优先级。
4. NI:进程的nice值,影响调度优先级。负值表示更高优先级,正值表示更低优先级。
5. VIRT:进程使用的虚拟内存总量。
6. RES:进程使用的、未被换出的物理内存大小(常驻集大小)。