【银河麒麟高级服务器操作系统】top命令详解
本文介绍了银河麒麟操作系统中top命令的使用方法,帮助用户监控系统资源。top命令可实时查看CPU、内存、进程等关键信息,无需额外安装。手册详细讲解了命令启动与退出方式、监控界面解读、核心交互操作(如排序、筛选、进程管理)以及常用参数配置。通过典型场景示例(如排查高CPU/内存进程、监控特定进程、自动化记录资源使用),指导用户快速定位系统性能问题。该工具适合运维人员和开发者用于日常系统监控与故障排
了解更多银河麒麟操作系统全新产品,请点击访问:
麒麟软件产品专区:https://www.kylinos.cn/productPc/
开发者专区:https://developer.kylinos.cn/
文档中心:https://document.kylinos.cn/document/center
一、内容概述
本手册的编写目的是为了帮助银河麒麟操作系统使用者快速掌握 top 命令的使用方法,解决日常系统运维中对进程监控、系统资源查看与分析的需求。
top 命令是系统自带的核心监控工具,无需额外安装,可实时查看 CPU、内存、进程等关键信息,是运维人员、开发人员排查系统性能问题、定位资源占用异常的必备工具。
本手册主要内容包括 top 命令的基础介绍、启动与退出方式、界面解读、核心操作指令、参数配置及常见使用场景,兼顾新手入门与进阶使用,确保不同层次的读者都能通过手册熟练运用 top 命令。
二、主要内容
2.1 top命令基础介绍
top 命令是银河麒麟操作系统中一款交互式的系统监控工具,用于实时显示系统中各个进程的资源占用情况,包括 CPU 使用率、内存占用、进程状态、运行时间等关键信息,且支持动态刷新,默认每 3 秒刷新一次,可根据需求调整刷新频率。其核心作用是帮助操作者快速识别系统中的资源瓶颈(如 CPU 过高、内存溢出),定位占用资源最多的进程,为系统性能优化、故障排查提供数据支持。
top 命令的核心特点:
-
实时性强,可动态监控进程状态变化;
-
交互性好,支持多种快捷键操作,可灵活筛选、排序进程;
-
轻量高效,无需依赖额外组件,系统默认自带,启动速度快;
-
信息全面,涵盖系统整体资源和单个进程细节,满足不同监控需求。
适用场景:
-
日常系统巡检,查看系统资源整体使用情况;
-
排查系统卡顿、响应缓慢问题,定位高 CPU、高内存占用进程;
-
监控特定进程的运行状态,查看其资源消耗变化;
-
分析系统负载变化,判断系统是否处于过载状态。
2.2 top命令启动与退出方式
2.2.1 启动方式
top 命令的启动方式简单,无需复杂配置,在终端中直接输入对应命令即可,常见启动方式分为3种:
- 基础启动:在终端输入 top 并回车,即可启动 top 命令,进入默认监控界面,默认按 CPU 使用率从高到低排序进程,每 3 秒刷新一次。
- 指定刷新频率启动:输入 top -d 时间(秒),可自定义监控界面的刷新间隔,例如 top -d 5,表示每 5 秒刷新一次监控数据,适合需要长时间观察、无需高频刷新的场景。
- 启动后直接指定排序字段:输入 top -o 排序字段,启动后直接按指定字段排序,例如 top -o %MEM,启动后直接按内存使用率从高到低排序,无需手动调整。
2.2.2 退出方式
top 命令启动后,处于交互监控状态,退出方式简单,主要有 2 种:
(1) 常规退出:在 top 监控界面中,直接按下 q 键(小写),即可立即退出 top 命令,返回终端界面,不影响系统中正在运行的进程。
(2) 强制退出:若 top 命令出现异常(如界面卡死),可按下 Ctrl + C 组合键,强制终止 top 命令进程,适用于常规退出无效的场景。
2.3 top命令监控界面解读
top 命令启动后,界面分为上下两个部分,上半部分为系统整体资源概览,下半部分为单个进程的详细信息,各区域含义如下,结合实际界面逐一解读,确保操作者能快速识别每一项信息的意义。
2.3.1 上半部分:系统整体资源概览
(1) 第 1 行:系统运行状态与时间信息
①格式:
「top - 时:分:秒 up 运行时间,用户数,负载 average: 1 分钟负载, 5 分钟负载, 15 分钟负载」。
②示例:
top - 14:30:00 up 2 days, 8:15, 3 users, load average: 0.80, 0.95, 1.00
③各字段解读:
时:分:秒:当前系统时间;
up 运行时间:系统已连续运行的时间(天、小时、分钟);
用户数:当前登录系统的终端用户数量;
load average:系统负载平均值,分别对应1分钟、5分钟、15分钟的负载情况,数值越小,系统负载越低,通常负载值不超过CPU核心数(如4核CPU,负载值≤4为正常)。
(2) 第2行:进程统计信息
①格式:
「Tasks: 总进程数 total, 运行中进程数 running, 休眠进程数 sleeping, 停止进程数 stopped, 僵尸进程数 zombie」。
②示例:
Tasks: 280 total, 1 running, 278 sleeping, 0 stopped, 1 zombie
③各字段解读:
总进程数:系统当前运行的所有进程(包括运行、休眠、停止、僵尸状态)的总数;
运行中进程数:正在占用CPU、处于运行状态的进程数;
休眠进程数:暂时不占用CPU、处于休眠(等待资源)状态的进程数;
停止进程数:被手动停止或异常停止的进程数;
僵尸进程数:进程已终止,但父进程未回收其资源,处于“僵尸”状态的进程数(正常情况下应为0,若长期存在僵尸进程,需排查异常)。
(3)第3行:CPU资源使用情况
①格式:
「%Cpu(s):用户态CPU占比us,系统态CPU占比sy,空闲CPU占比id,等待IO的CPU占比wa,硬中断CPU占比hi,软中断CPU占比si,虚拟机CPU占比st」。
②示例:
%Cpu(s): 12.5 us, 3.2 sy, 83.3 id, 0.5 wa, 0.0 hi, 0.5 si, 0.0 st
③各字段解读(核心重点):
us(用户态CPU):用户进程占用的CPU比例,若该值过高,说明用户进程(如应用程序、脚本)消耗CPU过多;
sy(系统态CPU):系统内核进程占用的CPU比例,若该值过高,说明系统内核(如驱动、进程调度)存在异常;
id(空闲CPU):空闲的CPU比例,该值越低,说明CPU负载越高,若长期低于10%,说明CPU可能过载;
wa(等待 IO CPU):进程等待磁盘、网络等 IO 资源时占用的 CPU 比例,若该值过高,说明 IO 存在瓶颈(如磁盘读写缓慢)。
(4) 第 4-5 行:内存资源使用情况,分为物理内存(Mem)和交换内存(Swap)。
①格式:
Mem:总内存 total,已使用内存 used,空闲内存 free,缓冲内存 buff,缓存内存 cache
Swap:总交换内存 total,已使用交换内存 used,空闲交换内存 free,缓存交换内存 cached
②示例:
Mem:16384000k total, 12582400k used, 3801600k free, 524288k buff, 2097152k cache
Swap:8192000k total, 0k used, 8192000k free, 1048576k cached
③各字段解读(核心重点):
物理内存(Mem):计算机实际的内存(如内存条),used 为已使用内存(包括进程占用、缓冲、缓存),free 为完全空闲的内存;
缓冲(buff):用于存储磁盘 IO 的临时数据,加速磁盘读写;
缓存(cache):用于存储常用程序和数据,加速程序启动和数据访问 (buff 和 cache 可被系统自动释放,供其他进程使用);
交换内存(Swap):虚拟内存,当物理内存不足时,系统会将部分不常用的进程数据写入 Swap,若 Swap 使用量过高,说明物理内存不足,需排查内存泄漏或增加内存。
2.3.2 下半部分:进程详细信息2.4. top命令核心交互操作(快捷键)
第 6 行为表头,对应下方每一行进程的具体信息,表头字段及解读如下:
PID:进程 ID,唯一标识一个进程,用于杀死、重启进程(如 kill PID);
USER:进程的所属用户,用于判断进程是由哪个用户启动的(如 root 用户、普通用户);
PR:进程优先级,数值越小,优先级越高,CPU 会优先调度(范围 0-39,默认 20);
NI:进程 nice 值,用于调整进程优先级(范围 -20 到 19),nice 值越低,优先级越高(可通过 renice 命令调整);
VIRT:进程占用的虚拟内存大小(单位:kb),包括物理内存、Swap 内存和共享内存;
RES:进程占用的物理内存大小(单位:kb),不包括 Swap 内存,是进程实际占用的内存(核心参考值);
SHR:进程占用的共享内存大小(单位:kb),多个进程可共享这部分内存;
S:进程状态,常见状态有 R(运行中)、S(休眠中)、D(不可中断休眠,通常与 IO 相关)、Z(僵户进程)、T(停止);
%CPU:进程占用的 CPU 百分比,实时更新,数值越高,占用 CPU 越多(核心参考值);
%MEM:进程占用的物理内存百分比,实时更新,数值越高,占用内存越多(核心参考值);
TIME+:进程累计占用的 CPU 时间(精确到毫秒),用于判断进程是否长期占用 CPU;
COMMAND:启动进程的命令(如 bash、java、nginx),用于识别进程对应的应用程序。
2.4.1.排序操作(核心常用)
top 命令启动后,处于交互模式,可通过快捷键快速操作,无需退出重新启动,以下是最常用、最实用的快捷键,按功能分类整理,方便记忆和使用:
- 按 CPU 使用率排序:按下 P 键(大写),默认排序方式,进程按%CPU 从高到低排序,快速定位高 CPU 进程;
- 按内存使用率排序:按下 M 键(大写),进程按%MEM 从高到低排序,快速定位高内存进程;
- 按进程 ID 排序:按下 N 键(大写),进程按 PID 从小到大排序,方便查找特定 PID 的进程;
- 按进程运行时间排序:按下 T 键(大写),进程按 TIME+从长到短排序,定位长期占用 CPU 的进程;
- 反向排序:按下 R 键(大写),将当前排序方式反向(如从高到低改为从低到高)。
2.4.2 筛选与搜索操作
- 按用户筛选进程:按下 u 键(小写),输入用户名后回车,即可只显示该用户启动的所有进程(如输入 root,只显示 root 用户的进程);
- 按进程 ID 筛选进程:按下 p 键(小写),输入 PID 后回车,即可只显示该 PID 对应的进程,方便单独监控某个进程;
- 搜索进程(按命令/进程名):按下 / 键(小写),输入进程名或命令关键词(如 nginx、java),回车后即可高亮显示匹配的进程,按下 n 键切换到下一个匹配项,按下 N 键切换到上一个匹配项。
2.4.3 刷新频率与界面调整
- 调整刷新频率:按下 d 键(小写),输入刷新间隔时间(秒)后回车,即可修改监控界面的刷新频率(如输入 1,每 1 秒刷新一次);
- 隐藏闲置进程:按下 i 键(小写),即可隐藏处于休眠状态(S)的进程,只显示运行中(R)、停止(T)、僵户(Z)等活跃进程,减少干扰;
- 显示完整命令:按下 c 键(小写),切换显示进程的命令(COMMAND 字段),默认显示简化命令,按下后显示完整命令路径(如默认显示 java,切换后显示/usr/bin/java);
- 显示线程信息:按下 H 键(大写),切换显示线程信息,将进程的子线程也显示出来,方便排查线程级别的资源占用问题。
2.4.4 进程操作(需谨慎)
- 杀死进程:按下 k 键(小写),输入需要杀死的进程 PID 后回车,再输入信号量(默认 15,正常终止;输入 9,强制终止),回车即可杀死该进程(【注意】:谨慎操作,避免杀死系统核心进程);
- 调整进程优先级:按下 r 键(小写),输入需要调整优先级的进程 PID 后回车,再输入 nice 值(-20 到 19),回车即可调整该进程的优先级(仅 root 用户可调整所有进程,普通用户只能调整自己的进程)。
2.5 top命令常用参数配置
除了交互快捷键,top 命令还支持多种启动参数,可在启动时直接配置监控模式,无需进入交互界面后调整,以下是常用参数:
-d 秒数:指定刷新间隔,如 top -d 2,每 2 秒刷新一次;
-u 用户名:启动后只显示指定用户的进程,如 top -u root,只监控 root 用户的进程;
-p PID1, PID2,...:启动后只显示指定PID的进程,如 top -p 1234,5678,只监控PID为1234和5678的两个进程;
-o 排序字段:启动后按指定字段排序,如 top -o %MEM(按内存排序)、top -o TIME+(按运行时间排序);
-b:批处理模式,不进入交互界面,直接输出监控数据,适合用于脚本自动化监控(如定时输出资源占用情况到日志);
-n 次数:指定批处理模式下的输出次数,如 top -b -n 3,输出3次监控数据后退出;
-H:启动后直接显示线程信息,相当于启动后按下H键,如 top -H -p 1234,显示PID为1234的进程的所有子线程;
-i:启动后不显示闲置进程,相当于启动后按下i键,如 top -i,只显示活跃进程。
2.6 top命令常见使用场景及实例
结合日常运维中的实际需求,整理top命令的常见使用场景,搭配具体操作实例,帮助操作者快速上手,解决实际问题:
2.6.1 场景1:排查系统卡顿,定位高CPU进程
问题现象:系统运行缓慢、终端响应卡顿,怀疑 CPU 过载;
操作步骤:
- 终端输入 top,启动监控界面;
- 按下 P 键,按 CPU 使用率从高到低排序;
- 查看 %CPU 字段,找到数值最高的进程,记录其 PID 和 COMMAND(确定是哪个应用);
- 若该进程是无用进程,按下 k 键,输入 PID,按回车,输入 9(强制终止),再回车,杀死进程;
- 若该进程是必要应用(如业务程序),则需进一步分析其 CPU 占用高的原因(如程序异常、请求过多)。
实例:top 启动后,按 P 排序,发现 PID 为 1234 的 java 进程 %CPU 达到 90%,确认该进程是异常启动的程序,按下 k,输入 1234,输入 9,终止进程后,系统卡顿缓解。
2.6.2 场景2:排查内存不足,定位高内存进程
问题现象:系统提示“内存不足”,或应用程序无法启动,Swap 使用量过高;
操作步骤:
- 终端输入 top,启动监控界面;
- 按下 M 键,按内存使用率从高到低排序;
- 查看 %MEM 和 RES 字段,找到占用内存最多的进程,记录其 PID 和 COMMAND;
- 分析该进程是否必要:若为无用进程,杀死进程;若为必要应用,需优化程序(如释放内存泄漏)或增加物理内存。
实例:top 启动后,按 M 排序,发现 PID 为 5678 的 nginx 进程 %MEM 达到 60%,RES 占用 8G 内存,检查发现 nginx 进程异常启动了多个实例,杀死多余实例后,内存占用恢复正常。
2.6.3 场景3:监控特定进程的运行状态
需求:实时监控某个业务进程(如 PID 为 7890 的 python 脚本)的 CPU、内存占用情况;
操作步骤:
- 终端输入 top -p 7890,启动后只显示该 PID 的进程;
- 按下 d 键,输入 1,将刷新频率调整为 1 秒,实时观察 %CPU 和 %MEM 的变化;
- 若需要查看该进程的线程,按下 H 键,查看子线程的资源占用情况。
2.6.4 场景4:定时记录系统资源占用情况(自动化监控)
需求:每 5 分钟记录一次系统 CPU、内存及 top5 高资源进程,保存到日志文件;
操作步骤:
- 终端输入命令:top -b -d 300 -n 1 >> /var/log/system_monitor.log;
- 参数解释:-b(批处理模式)、-d 300(每 5 分钟刷新一次)、-n 1(输出 1 次)、>>(追加到日志文件);
- 可结合 crontab 定时任务,设置每 5 分钟执行一次该命令,实现长期自动化监控。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)