1. 各种工具展示图表
1.1. 性能观察工具
1.2. 静态性能工具
1.3. 性能压测工具
1.4. 性能调优工具
1.5. sar
1.6. perf-tools
1.7. 追踪工具
1.8. BPF性能工具
2. top
2.1. 显示界面
查看系统中各进程的资源占用情况
PID 进程id
USER 用户
PR 优先级
NI nice值
VIRT virtual memory usage 虚拟内存
- 进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
- 假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES resident memory usage 常驻内存
- 进程当前使用的内存大小,但不包括swap out
- 包含其他进程的共享
- 如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
- 关于库占用内存的情况,它只统计加载的库文件所占内存大小
SHR shared memory 共享内存
- 除了自身进程的共享内存,也包括其他进程的共享内存
- 虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
- 计算某个进程所占的物理内存大小公式:RES – SHR
- swap out后,它将会降下来
S 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 命令名/命令行
2.2. top 选项
-b:以批处理模式操作;
-c:显示完整的治命令;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i<时间>:设置间隔时间;
-u<用户名>:指定用户名;
-p<进程号>:指定进程;
-n<次数>:循环显示的次数;
3. htop
3.1. 安装
sudo apt-get install htop
3.2. 使用
显示的是 CPU 负载、内存消耗及交换空间的实时信息,右上角包含的是任务、线程、平均负载及系统运行时间的信息。
平均负载部分提供了三个数字,这仅仅表示的是过去的5分钟、10分钟和15分钟系统的平均负载而已,在单核的系统中,平均负载为1表示的是百分之百的 CPU 利用率。最后,运行时间 (uptime)标示的数字是从系统启动起到当前的运行总时间。
默认情况下,htop将每个线程显示为一个单独的进程
2.3. 用 F2 键编辑配置
下面所示的是可用的自定义选项
只需使用箭头键选择和更改特定的设置。
3.4. 通过 F9 键发送信号
htop 命令可以让你很容易地在 htop 窗口内给一个进程发送任意的信号。按下 F9 键即可。
窗口的左边部分列出的是所有可用的信号,右边部分列出的是进程。只要选中信号,并选择一个进程,然后按下 enter 键,选中的信号就会发送到此进程。
3.5. 显示进程的树状视图
htop 命令也提供了进程的树状视图查看功能。按下 F5 键切换。
下面是 htop 显示树形视图信息的例子:
要退出树状视图模式,请再一次按下 F5 键。
3.6. 通过 F3 键搜索进程
htop 命令提供了易用的方式来搜索进程。按下 F3 键,一个文本框就会出现在窗口底部。
一条名为‘搜索’的文本提示框出现在窗口底部,您可以在这儿输入进程的名字然后回车搜索。如果找到,它会在列出的进程列表里高亮选中此进程。
3.7. 通过空格键来设置颜色标注进程条目
在系统中运行着的实时进程视图中,要追踪某个进程是个大问题。因为整个列表在不停的刷新着,进程的排列顺序也在变动着。为了这个问题, htop 提供了一个很简单的解决方案:颜色标注。是的,你可以标注一个进程条目,它会以不同的颜色显示,因此要追踪它就变得容易了。
要标注某个进程条目,需要做的就是选中此条目,然后按下‘空格’键。例如,在下面的截图示例中,我已经颜色标注了三个进程条目:
所以通过此方法,你就能很轻松地追踪想查看的进程。
3.8. 命令行选项
除了上面介绍的一些热键,htop 还提供了很有用的命令行选项。下面是其中一部分
- -s 选项 : 按指定的列排序。例如,htop -s PID 命令会按 PID 列的大小排序来显示。
- -u 选项 : 显示指定的用户的进程信息列表。例如,htop -u himanshu 命令会只显示出用户名为 himanshu 的相关进程。
- -d 选项 : 设置刷新的延迟时间。例如,htop -d 100 命令会使输出在1秒后才会刷新(参数 -d 的单位是10微秒)。
参考文献
Linux top命令的用法详细详解 - 莫水千流 - 博客园
技术|为什么 Linux 的 htop 命令完胜 top 命令