top
top - 23:25:03 up 338 days, 22:15, 1 user, load average: 0.40, 0.25, 0.53
Tasks: 26 total, 1 running, 25 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.2 us, 0.8 sy, 0.0 ni, 98.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16425212 total, 5285604 free, 997504 used, 10142104 buff/cache
KiB Swap: 969964 total, 821480 free, 148484 used. 14728768 avail Mem
top | 表示当前程序的名称 |
11:05:18 | 表示当前的系统的时间 |
up 8 days,17:12 | 表示该机器已经启动了多长时间 |
1 user | 表示当前系统中只有一个用户 |
load average: 0.29,0.20,0.25 | 分别对应 1、5、15 分钟内 cpu 的平均负载 |
load average 在 wikipedia 中的解释是 the system load is a measure of the amount of work that a computer system is doing 也就是对当前 CPU 工作量的度量,具体来说也就是指运行队列的平均长度,也就是等待 CPU 的平均进程数相关的一个计算值。
假设我们的系统是单 CPU、单内核的,把它比喻成是一条单向的桥,把 CPU 任务比作汽车。
- load = 0 的时候意味着这个桥上并没有车,cpu 没有任何任务;
- load < 1 的时候意味着桥上的车并不多,一切都还是很流畅的,cpu 的任务并不多,资源还很充足;
- load = 1 的时候就意味着桥已经被车给占满了,没有一点空隙,cpu 已经在全力工作了,所有的资源都被用完了,当然还好,这还在能力范围之内,只是有点慢而已;
- load > 1 的时候就意味着不仅仅是桥上已经被车占满了,就连桥外都被占满了,cpu 已经在全力工作,系统资源的用完了,但是还是有大量的进程在请求,在等待。若是这个值大于 2 表示进程请求超过 CPU 工作能力的 2 倍。而若是这个值大于 5 说明系统已经在超负荷运作了
来看 top 的第二行数据,基本上第二行是进程的一个情况统计:
内容 | 解释 |
---|---|
Tasks: 26 total | 进程总数 |
1 running | 1 个正在运行的进程数 |
25 sleeping | 25 个睡眠的进程数 |
0 stopped | 没有停止的进程数 |
0 zombie |
没有僵尸进程数 |
top 的第三行数据,这一行基本上是 CPU 的一个使用情况的统计了:
内容 | 解释 |
---|---|
Cpu(s): 1.0%us |
用户空间进程占用 CPU 百分比 |
1.0% sy |
内核空间运行占用 CPU 百分比 |
0.0%ni |
用户进程空间内改变过优先级的进程占用 CPU 百分比 |
97.9%id |
空闲 CPU 百分比 |
0.0%wa |
等待输入输出的 CPU 时间百分比 |
0.1%hi |
硬中断(Hardware IRQ)占用 CPU 的百分比 |
0.0%si |
软中断(Software IRQ)占用 CPU 的百分比 |
0.0%st |
(Steal time) 是 hypervisor 等虚拟服务中,虚拟 CPU 等待实际 CPU 的时间的百分比 |
top 是一个前台程序,所以是一个可以交互的:
常用交互命令 | 解释 |
---|---|
q | 退出程序 |
I | 切换显示平均负载和启动时间的信息 |
P | 根据 CPU 使用百分比大小进行排序 |
M | 根据驻留内存大小进行排序 |
i | 忽略闲置和僵死的进程,这是一个开关式命令 |
k | 终止一个进程,系统提示输入 PID 及发送的信号值。一般终止进程用 15 信号,不能正常结束则使用 9 信号。安全模式下该命令被屏蔽。 |
ps
pstree 查看进程的命令树
查看cpu的个数和核数
查看cpu个数
shiyanlou:~/ $ cat /proc/cpuinfo|grep "physical id"|sort|uniq|wc -l [23:19:48]
1
查看cpu核数
shiyanlou:~/ $ cat /proc/cpuinfo|grep "physical id"|grep "0"|wc -l [23:19:54]
4
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现