如何使用top命令查看系统资源使用情况(CPU、内存、进程负载等)
是 Linux 系统中一个强大的实时性能监控工具,可以查看系统资源使用情况(如 CPU、内存、进程负载等)。可以快速定位系统资源瓶颈(如CPU、内存、I/O),结合其他工具(如。会进入动态刷新的监控界面(默认3秒刷新一次)。可切换颜色高亮,方便识别运行中的进程。(大写)将当前配置保存到。)能深入分析问题根源。,下次启动自动生效。
·
如何使用top命令查看系统资源使用情况(CPU、内存、进程负载等)
top
是 Linux 系统中一个强大的实时性能监控工具,可以查看系统资源使用情况(如 CPU、内存、进程负载等)。以下是 top
命令的详细使用指南:
1. 启动 top
在终端直接输入命令:
top
会进入动态刷新的监控界面(默认3秒刷新一次)。
2. top
界面概览
top
界面分为两部分:
- 上半部分:系统整体资源统计(CPU、内存、负载等)。
- 下半部分:进程列表(默认按 CPU 使用率排序)。
上半部分示例:
top - 15:30:45 up 10 days, 2:15, 3 users, load average: 0.50, 0.30, 0.20
Tasks: 150 total, 2 running, 148 sleeping, 0 stopped, 0 zombie
%Cpu(s): 15.3 us, 2.0 sy, 0.0 ni, 82.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7986.5 total, 1024.3 free, 4096.2 used, 2866.0 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 3500.2 avail Mem
load average
:系统1/5/15分钟的平均负载(数值≈CPU核心数时为饱和)。%Cpu(s)
:us
:用户进程占用CPU百分比。sy
:系统内核占用CPU百分比。id
:空闲CPU百分比(越高越好)。wa
:I/O等待占用CPU百分比(高则可能存在磁盘瓶颈)。
- 内存/交换分区:
total
、used
、free
等。
下半部分(进程列表)示例:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 root 20 0 500000 80000 10000 R 50.0 1.0 5:30.65 java
5678 mysql 20 0 800000 200000 20000 S 10.0 2.5 2:15.20 mysqld
- 关键列:
PID
:进程ID。%CPU
:进程占用CPU百分比。%MEM
:进程占用内存百分比。S
:进程状态(R
=运行,S
=睡眠,Z
=僵尸进程)。COMMAND
:进程名称/命令。
3. 常用交互命令
在 top
运行时,按以下单字母快捷键进行操作:
按键 | 功能 |
---|---|
P |
按 CPU 使用率 排序(默认) |
M |
按 内存使用率 排序 |
T |
按 进程运行时间 排序 |
N |
按 PID 排序 |
k |
终止进程(输入PID后按回车) |
r |
调整进程优先级(输入PID和nice值) |
1 |
展开显示所有CPU核心的详细使用率 |
h |
显示帮助菜单 |
q |
退出 top |
4. 启动参数(命令行选项)
参数 | 说明 |
---|---|
top -d 5 |
设置刷新间隔为5秒 |
top -p 1234 |
仅监控PID为1234的进程 |
top -u mysql |
仅监控mysql 用户的进程 |
top -b -n 2 > log.txt |
以批处理模式运行2次,结果输出到文件 |
5. 实用技巧
(1)高亮显示活跃进程
按 z
可切换颜色高亮,方便识别运行中的进程。
(2)监控特定线程
- 启动
top
后按H
(大写),显示所有线程。 - 结合
-p
参数监控Java进程的线程:top -H -p $(pgrep java)
(3)查看完整命令
按 c
可显示进程的完整命令行(避免截断)。
(4)保存快照
按 W
(大写)将当前配置保存到 ~/.toprc
,下次启动自动生效。
6. 替代工具推荐
htop
:增强版top
,支持鼠标操作和树状视图(需安装:apt install htop
)。glances
:更全面的监控工具(支持网络、磁盘等)。
示例场景
问题:Java进程CPU占用过高
- 启动
top
,按P
按CPU排序。 - 发现某个Java进程占用了90% CPU,记下PID(如
1234
)。 - 进一步分析该进程的线程:
top -H -p 1234
- 将高CPU线程的PID(如
5678
)转为16进制:printf "%x\n" 5678 # 输出162e
- 用
jstack
查看线程堆栈:jstack 1234 | grep -A 20 162e
通过 top
可以快速定位系统资源瓶颈(如CPU、内存、I/O),结合其他工具(如 jstack
、vmstat
)能深入分析问题根源。
更多推荐
所有评论(0)