top命令用法
top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。
top的使用方式 top [-d number] | top [-bnp]
参数解释:
-d:number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。 -b:以批次的方式执行top。 -n:与-b配合使用,表示需要进行几次top命令的输出结果。 -p:指定特定的pid进程号进行观察。
在top命令显示的页面还可以输入以下按键执行相应的功能(注意大小写区分的):
1
2
3
4
5
6
7
8
9
10
11
|
1 产看cpu 个数,及各核的使用情况 P 按照 进程 cpu 的使用率排序 (默认情况) M 按照 内存的使用情况排序 q 退出 shift +< 上一页 shift +> 下一页 r 调整nice 值 renice f 选择显示那一列 F,O 按那一列排序 k 杀死一个进程 c 显示command详细信息 |
top各输出参数含义
一、top前五条信息解释
1)第一行:top - 14:49:28 up 1:33, 1 user, load average: 0.00, 0.00, 0.00
内容 含义
14:49:28 ---- 表示当前时间
up 1:33 ---- 系统远行时间,格式为时:分
1 user ---- 当前登陆用户数
load average: 0.00, 0.00, 0.00 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值
2)第二行:Tasks: 80 total, 2 running, 78 sleeping, 0 stopped, 0 zombie
内容 含义
80 total ---- 进程总数
2 running ---- 正在运行的进程数
78 sleeping ---- 睡眠的进程数
0 stopped ---- 停止的进程数
0 zombie ---- 僵尸进程数
3)第三行:Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
%Cpu(s):显示了 CPU 的使用情况,包括用户空间(user)、内核空间(system)、空闲(idle)、等待 I/O(iowait)和其他(steal, guest 等)。
内容 含义
0.0%us ---- 用户空间占用CPU百分比
0.0%sy ---- 内核空间占用CPU百分比
0.0%ni ---- 用户进程空间内改变过优先级的进程占用CPU百分比
100.0%id ---- 空闲CPU百分比
0.0%wa ---- 等待输入输出的CPU时间百分比
0.0%hi ---- 硬中断(Hardware IRQ)占用CPU的百分比
0.0%si ---- 软中断(Software Interrupts)占用CPU的百分比
0.0 st ---- 用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间
4)第四行:Mem: 1922488k total, 406936k used, 1515552k free, 11940k buffers
内容 含义
1922488k total 物理内存总量
406936k used 使用的物理内存总量
1515552k free 空闲内存总量
11940k buffers 用作内核缓存的内存量
5)第五行:Swap: 835576k total, 0k used, 835576k free, 111596k cached
内容 含义
835576k total 交换区总量
0k used 使用的交换区总量
835576k free 空闲交换区总量
111596k cached 缓冲的交换区总量
二、进程信息
列名 | 含义 |
PID | 进程ID |
USER | 进程所有者的用户名 |
PR | 优先级 |
NI | nice值,负值表示高优先级,正值表示低优先级 |
VIRT | 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
SWAP | 进程使用的虚拟内存中,被换出的大小,单位kb |
RES | 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
S | 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
COMMAND | 命令行 |
默认进入top时,各进程是按照CPU的占用量来排序的。
top
是一个 Linux 系统中的实时性能监控命令,主要用于显示系统中各个进程的实时状态。它可以提供了有关 CPU 使用率、内存使用情况、运行的任务数量、系统负载等信息。
1. top
命令的基本输出内容
当运行 top
命令时,屏幕上会显示以下几部分信息:
1.1 系统信息行(Summary Information)
位于 top
输出的顶部,包含以下内容:
- uptime:系统已经运行的时间。
- users:当前登录系统的用户数量。
- load average:系统的平均负载,分别为过去 1 分钟、5 分钟和 15 分钟的平均值。这个值越高,表示系统的压力越大。
1.2 任务信息(Task Information)
显示当前系统的任务和进程状态:
- Tasks:表示系统中总的进程数,分为运行(running)、睡眠(sleeping)、停止(stopped)和僵尸(zombie)进程的数量。
- %Cpu(s):显示 CPU 使用情况,包括用户空间使用率、系统空间使用率、空闲率等。
1.3 内存信息(Memory Information)
显示系统内存的使用情况:
- KiB Mem:显示物理内存的使用情况,包括总量(total)、已使用(used)、空闲(free)和缓存/缓冲(buffers/cache)。
- KiB Swap:显示交换分区的使用情况。
1.4 进程列表(Process List)
显示当前系统中的各个进程,包括以下信息:
- PID:进程 ID。
- USER:运行该进程的用户。
- PR:进程优先级。
- NI:进程的 nice 值(影响进程优先级)。
- VIRT:进程占用的虚拟内存大小。
- RES:进程占用的物理内存大小。
- SHR:进程使用的共享内存大小。
- S:进程状态(S 表示休眠,R 表示运行,Z 表示僵尸进程等)。
- %CPU:进程使用的 CPU 资源百分比。
- %MEM:进程使用的内存资源百分比。
- TIME+:进程使用的 CPU 时间总计。
- COMMAND:运行该进程的命令名。
2. top
命令的常用选项和操作
-d <秒数>
:设置top
命令的刷新时间间隔。-n <次数>
:指定top
命令运行的次数后自动退出。-p <进程ID>
:仅显示指定进程ID的信息。-u <用户名>
:仅显示指定用户名的进程信息。-H
:显示线程详细信息。-i
:不显示闲置或无用的进程。-b
:以批处理模式运行,直接将结果输出到文件。-c
:显示完整的命令行而不截断。-S
:累计显示进程的 CPU 使用时间。
3. 在 top
中的交互操作
h
:显示帮助信息。k
:杀掉一个进程,输入进程的 PID 即可。q
:退出top
命令。r
:重新调整某个进程的优先级。s
:更改屏幕刷新间隔时间。P
:按 CPU 使用率排序(默认排序)。M
:按内存使用率排序。T
:按运行时间排序。c
:显示完整的命令行(COMMAND)信息。1
:显示每个 CPU 的负载信息。
4. 实际使用
-
监控所有进程的 CPU 和内存使用情况:
bashtop
-
以 5 秒的刷新间隔运行
top
:bashtop -d 5
-
只查看指定用户的进程:
bashtop -u username
-
将
top
的输出保存到文件中:bashtop -b -n 1 > top_output.txt
-
显示前 10 个 CPU 使用率最高的进程:
bashtop -b -n 1 | head -n 10
5. 查看 I/O 情况
top
命令默认情况下不显示
详细的 I/O 使用情况。要在 top
中查看基本的 I/O 等待情况,可以关注以下字段:
- wa : 在
top
命令输出的第三行(%Cpu(s)
行),wa
字段表示 I/O 等待时间的百分比。如果该值较高,表示系统大量时间在等待 I/O 操作完成,通常意味着 I/O 子系统可能是性能瓶颈。
6. 其他查看 I/O 情况的工具
要详细查看每个进程的 I/O 使用情况,可以使用 iotop
或 iostat
工具。
-
iotop
命令 :类似于top
,但专门用于监控 I/O 使用情况。-
安装
iotop
:bashsudo apt-get install iotop # 对于 Debian/Ubuntu sudo yum install iotop # 对于 CentOS/RHEL
-
使用
iotop
查看 I/O 使用情况:bashsudo iotop
iotop
的输出会显示每个进程的 I/O 读取和写入速度,以及它们的 I/O 优先级。
-
-
iostat
命令:用于显示设备级别的 I/O 统计信息。-
安装
iostat
(通常在sysstat
包中):bashsudo apt-get install sysstat # 对于 Debian/Ubuntu sudo yum install sysstat # 对于 CentOS/RHEL
-
使用
iostat
查看 I/O 使用情况:bashiostat -x 1
iostat -x 1
命令会以 1 秒的间隔显示设备级别的详细 I/O 统计信息,包括读取/写入速度、设备的使用率等。
-
总结
top
命令非常适合查看系统整体的 CPU 和内存使用情况,并可简单地查看 I/O 等待时间。- 对于更详细的 I/O 使用情况分析,推荐使用
iotop
和iostat
工具,它们可以提供进程级别和设备级别的 I/O 数据。 top
命令是系统管理员和开发人员在 Linux 系统中进行实时监控的一个强大工具。熟练使用top
可以有效地监控系统性能,发现和解决系统中的性能瓶颈问题。
原文链接:https://blog.csdn.net/promise524/article/details/141691485
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现