Linux学习小标兵,专注Linux资讯分享,技术文章分享
分类: LINUX
2023-07-21 21:36:26
导读 | cpustat 是 下一个强大的系统性能测量程序,它用 Go 编程语言 编写。它通过使用 “用于分析任意系统的性能的方法(USE)”,以有效的方式显示 CPU 利用率和饱和度。cpustat 能用两种方式输出数据:定时汇总的纯文本列表和每个取样的彩色滚动面板。 |
它高频率对系统中运行的每个进程进行取样,然后以较低的频率汇总这些样本。例如,它能够每 200ms 测量一次每个进程,然后每 5 秒汇总这些样本,包括某些度量的{BANNED}最佳小/平均/{BANNED}最佳大值(min/avg/max)。
为了使用 cpustat,你的 Linux 系统中必须安装有 Go 语言(GoLang),如果你还没有安装它,点击下面的链接逐步安装 GoLang:
安装完 Go 以后,输入下面的 go get 安装 cpustat,这个会将 cpustat 二进制文件安装到你的 GOBIN 变量(所指的路径):
# go get github.com/uber-common/cpustat
安装过程完成后,如果你不是以 root 用户控制系统,像下面这样使用 sudo 命令获取 root 权限运行 cpustat,否则会出现下面显示的错误信息:
$ $GOBIN/cpustat This program uses the netlink taskstats interface, so it must be run as root.
注意:想要像你系统中已经安装的其它 Go 程序那样运行 cpustat,你需要把 GOBIN 变量添加到 PATH 环境变量。打开下面的链接学习如何在 Linux 中设置 PATH 变量。
cpustat 是这样工作的:在每个时间间隔查询 /proc 目录获取当前进程 ID 列表,然后:
根据获取所有这些统计信息所花费的时间,会调整每个休息间隔。另外,通过每次取样之间实际经过的时间,每个样本也会记录它用于测量的时间。这可用于计算 cpustat 自身的延迟。
当不带任何参数运行时,cpustat 默认会显示以下信息:样本间隔:200ms;汇总间隔:2s(10 个样本);显示前 10 个进程;用户过滤器:all;pid 过滤器:all。正如下面截图所示:
$ sudo $GOBIN/cpustat
cpustat – 监控 Linux CPU 使用
在上面的输出中,之前显示的系统范围的度量字段意义如下:
同样还是上面的输出,对于一个进程,不同列的意思分别是:
下面的命令显示了系统中运行的前 10 个 root 用户进程:
$ sudo $GOBIN/cpustat -u root
查找 root 用户正在运行的进程
要想用更好看的终端模式显示输出,像下面这样用 -t 选项:
$ sudo $GOBIN/cpustat -u root -t
root 用户正在运行的进程
要查看前 x 个进程(默认是 10),你可以使用 -n 选项,下面的命令显示了系统中 正在运行的前 20 个进程:
$ sudo $GOBIN/cpustat -n 20
你也可以像下面这样使用 -cpuprofile 选项将 CPU 信息写到文件,然后用 cat 命令查看文件:
$ sudo $GOBIN/cpustat -cpuprofile cpuprof.txt $ cat cpuprof.txt
要显示帮助信息,像下面这样使用 -h 选项:
$ sudo $GOBIN/cpustat -h
可以从 cpustat 的 Github 仓库: 查阅其它资料。
就是这些!在这篇文章中,我们向你展示了如何安装和使用 cpustat,Linux 下的一个有用的系统性能测量工具。通过下面的评论框和我们分享你的想法吧。
作者简介:
Aaron Kili 是一个 Linux 和 F.O.S.S(Free and Open-Source Software) 爱好者,一个 Linux 系统管理员、web 开发员,现在也是 TecMint 的内容创建者,他喜欢和电脑一起工作,他相信知识共享。