Linux1天1命令—1.top
用途:显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等。
top是Linux常用的性能分析工具,能实时显示系统中各个进程的资源占用状况,类似Windows任务管理器。
top是动态显示过程,可以通过按键刷新当前状态。在前台运行将独占前台,直到用户终止该程序为止。
比较准确的说,top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。
top可以按CPU使用、内存使用和执行时间对任务进行排序。
top很多特性都可以通过交互式命令或者在个人定制文件中进行设定。
基本用法
top -d 5 // 每隔5秒刷新1次,默认3秒 可以直接 top
1、输出信息上半部分
- 第1行:系统当前时间;运行多久;当前几个用户登录;系统在之前1,5,15分钟平均负载
# 注:一般认为小于1,负载较小;大于1,系统超负荷
- 第2行:系统中进程总数;正在运行数;睡眠进程数;正在停止数;僵尸进程数(非0,需手工检查僵尸进程)
- 第3行:cpu状态信息
- 用户模式占用CPU百分比
- 系统模式占用的PU百分比
- 改变过优先级用户进程占用百分比
- 空闲CPU占用百分比
- 等待输入输出进程占用百分比
- 硬中断请求占用百分比
- 软中断占用百分比
- 虚拟时间百分比(就是当有虚拟机时,虚拟cpu等待实际cpu的时间百分比)
# 注:在这里CPU的使用比率和windows概念不同,需要理解linux系统用户空间和内核空间的相关知识!
- 第4行:物理内存的总量kb;已用内存存量;空闲内存总量;作为缓冲内存总量
# 注: 使用内存总量(used)是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的值。纳入内核管理的内存不见得都在用,还包括过去使用过的现在可被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中,因此在linux上free内存会越来越少,不必为此担心。
- 第5行:交换分区的总大小;已交换分区的大小;空闲交换分区的大小;作为缓存的交换分区大小
# 注: 如出于习惯去计算可用内存数,有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:68355886k+410176k+3612636k=8GB左右。
# 注: 好吧,上一段注释看不懂了吧,抄的,那是centos6的界面。centos7是上图的样子,所以free + buff/cache
# 注: 对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
2、输出信息下半部分
# 下边部分类似ps的信息,默认按cpu占比排序
- PID 进程id
- USER 进程所有者
- PR 进程优先级
- NI 进程优先级(nice值)。负值表示高优先级
- VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
- RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
- SHR 共享内存大小,单位kb
- S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
- %CPU 上次更新到现在的CPU时间占用百分比
- %MEM 进程使用的物理内存百分比
- TIME+ 进程使用的CPU时间总计,单位1/100秒
- COMMAND 进程名称(命令名/命令行)
- 使用技巧
| 多U多核CPU监控——按数字1,可监控每个逻辑CPU状态
| 高亮显示当前运行进程——按b(打开/关闭加亮),按y键也可以
| 默认cpu占用率排序——x打开/关闭排序加亮
| q退出
- shift的使用
| shift m 改为按内存排序;
| shift p 改为按cpu排序;
| shift n 是pid排序
| shift < 向前
| shift > 向后
| shift ?或h帮助
| shift z 彩色显示
常用参数
top -c // 显示完整命令
top -b // 以批处理模式显示程序信息
top -S // 以累积模式显示程序信息
top -n 2 // 更新两次后终止
top -d 3 // 设置每3秒更新一次
top -p 555 // 显示指定的进程信息
top交互命令
# 在top执行过程中可以使用单字母交互命令。如果在命令行中使用了s选项,其中一些命令可能会被屏蔽。
- h 显示帮助画面,给出一些简短的命令总结说明
- k 终止一个进程。
- i 忽略闲置和僵死进程。这是一个开关式命令。
- q 退出程序
- r 重新安排一个进程的优先级别
- S 切换到累计模式
- s 改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s
- f或者F 从当前显示中添加或者删除项目
- o或者O 改变显示项目的顺序
- l 切换显示平均负载和启动时间信息
- m 切换显示内存信息
- t 切换显示进程和CPU状态信息
- c 切换显示命令名称和完整命令行
- M 根据驻留内存大小进行排序
- P 根据CPU使用百分比大小进行排序
- T 根据时间/累计时间进行排序
- W 将当前设置写入~/.toprc文件中
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)