pidstat
命令检查系统是否已经安装了 pidstat
打开终端,输入以下命令检查是否已经安装了 pidstat
:
pidstat -V
如果显示版本信息,说明已经安装,可以跳过安装步骤。如果提示找不到命令,那么继续下一步安装。
更新包管理器 在安装 pidstat
前,建议先更新系统的包管理器来获取最新的软件包列表。可以使用以下命令:
对于基于 Debian
或 Ubuntu
的系统:
sudo apt update
对于基于 Red Hat
、CentOS
或 Fedora
的系统:
sudo yum update
安装 sysstat 包 pidstat
是 sysstat
工具包的一部分,因此我们需要安装 sysstat
来获取 pidstat
。
对于基于 Debian
或 Ubuntu
的系统:
sudo apt install sysstat
对于基于 Red Hat
、CentOS
或 Fedora
的系统:
sudo yum install sysstat
验证安装 安装完成后,验证 pidstat
是否已经成功安装:
pidstat -V
你应该看到类似以下的输出,表示 pidstat
已经安装成功:
sysstat version: 11.7.3
pidstat version: 11.7.3
pidstat
监控进程pidstat
可以监控多个指标,如 CPU 使用率、内存使用情况、I/O 操作等。接下来,我们将详细介绍如何使用不同的选项来监控进程。
要查看所有进程的 CPU 使用情况,使用以下命令:
pidstat
这将显示每个进程的 CPU 使用率,输出结果包括以下信息:
PID
: 进程 ID。
%usr
: 用户态 CPU 使用率。
%system
: 内核态 CPU 使用率。
%CPU
: 总的 CPU 使用率。
如果你想在一段时间内持续监控进程的 CPU 使用情况,可以使用以下格式的命令:
pidstat 2 5
这意味着每隔 2 秒刷新一次数据,共显示 5 次。可以根据需要调整刷新间隔和次数。
要查看某个特定进程的 CPU 使用情况,假设进程的 PID 为 1234
,可以使用以下命令:
pidstat -p 1234
这将只显示该进程的 CPU 使用情况。
要查看所有进程的内存使用情况,可以使用 -r
选项:
pidstat -r
这将显示以下与内存相关的信息:
minflt/s
: 每秒次级页面错误数。
majflt/s
: 每秒主页面错误数。
VSZ
: 虚拟内存大小。
RSS
: 驻留集大小。
同样,如果你想在一段时间内持续监控进程的内存使用情况,可以指定时间间隔和次数:
pidstat -r 2 5
这意味着每隔 2 秒刷新一次内存使用情况,共显示 5 次。
要监控进程的 I/O 操作,可以使用 -d
选项:
pidstat -d
这将显示以下与 I/O 操作相关的信息:
kB_rd/s
: 每秒从磁盘读取的数据量。
kB_wr/s
: 每秒写入磁盘的数据量。
kB_ccwr/s
: 取消写入的千字节数(由于缓存)。
你也可以指定刷新间隔和次数:
pidstat -d 2 5
这意味着每隔 2 秒刷新一次 I/O 操作数据,共显示 5 次。
pidstat
还可以监控每个进程的线程使用情况,使用 -t
选项可以显示线程级别的监控信息:
pidstat -t
这会显示每个进程的线程详细信息,包括线程 ID (TID
)、线程 CPU 使用率等。
如果你希望将监控数据保存到文件中,可以使用重定向符将输出写入文件。例如,将 CPU 使用情况保存到 cpu_usage.txt
中:
pidstat 2 5 > cpu_usage.txt
这样你可以在稍后查看该文件中的数据。
你可以组合使用 pidstat
的多个选项。例如,监控某个特定进程的 CPU、内存和 I/O 使用情况,假设进程 ID 为 1234
,可以使用以下命令:
pidstat -p 1234 -r -d
这将显示进程 1234
的 CPU、内存和 I/O 使用情况。
如果你需要长时间监控进程,可以结合 cron
或 nohup
命令使用。例如,使用 nohup
运行以下命令,使其在后台持续运行,并将输出保存到 monitor.log
:
nohup pidstat 2 1000 > monitor.log &
这将每隔 2 秒记录一次系统的进程信息,持续 1000 次,并将输出记录到 monitor.log
文件中。你可以通过 tail -f monitor.log
实时查看日志文件的更新。