获取 Linux 的每个用户或每个命令的 CPU/负载信息

获取 Linux 的每个用户或每个命令的 CPU/负载信息

我在 Centos 7(Linux 3.10.0)机器上运行了一个标准 LAMP 堆栈。Apache Web 服务器将运行 PHP 文件的请求传递给多个 php-fpm 进程,这些进程在映射到各种虚拟 Web 服务器的不同用户帐户下运行。所有 php-fpm 进程/程序都访问由一个 MariaDB 实例处理的不同数据库。

系统开始承受一些负载,我想知道原因和位置。:)

执行“top”后,我的印象是瓶颈是 mysqld MariaDB 进程/线程,但我想深入研究一下。我不太熟悉 Linux 下的进程记帐,所以想在这里寻求建议。

我安装了“psacct”RPM,它为我提供了“lastcomm”。lastcomm 可以很好地为我提供终止进程所耗费的 CPU 时间,但我无法在正在运行的系统上使用它,因为 mysqld 进程永远不会终止。因此,我无法使用 lastcomm 来了解所有 CPU 时间都花在了哪里,也无法找出哪些进程占用了 CPU。

“sar” 很好,但据我所知,它只提供全局机器统计信息。无法要求它将这些数字划分为每个用户或每个命令的数字。如果有的话,我将非常感激有人告诉我怎么做。

有没有办法可以获取所有进程(已终止或以其他方式终止)的 CPU 使用情况统计信息(迄今为止或一段时间内),并按用户/命令划分?

此外,除了 CPU - 磁盘 I/O 或“负载”(可运行但在 CPU 或磁盘 I/O 上被阻止)- 按用户/命令分解之外,还有什么方法可以获取其他指标?

非常感谢您对‘Linux 会计入门’的任何建议或参考。

答案1

这些将帮助你:

Cacti 具有图形功能,并且性能良好: http://www.cyberciti.biz/faq/fedora-rhel-install-cacti-monitoring-rrd-software/

iotop:IO 操作的命令行

htop:更好更漂亮的 top

相关内容