寻找高负荷根的最佳过程

寻找高负荷根的最佳过程

我有一个 VPS(WHM/cPanel),我将客户的项目保存在其中。

其中一些项目是知名的框架,一些是自定义的 PHP/MySQL 代码。

在某些时候,我注意到负载很高,但我真的找不到原因所在。

我正在使用top -c它来检查顶级进程,并且还在 WHM 上安装了 Munin。

我想问一下是否有某种方法可以实时监控高负载的原因。

在高负载时,我遵循以下步骤:

  • 检查全局流量和系统资源
  • 检查 Apache/MySQL/PHP 日志
  • 检查哪个项目导致高负载(通常来自top
  • 对导致高负载的代码进行完整的堆栈跟踪

有没有一个软件可以在一个中心位置完成所有这些操作?这是正确的方法吗?在这种情况下你会怎么做?

答案1

最佳流程涉及许多工具,它们可以为您提供有关服务器的详细视图。您从不同来源获得的信息越多,就越容易确定原因。

您可以检查日志以查看发生此情况时出现的任何问题。此外,Munin 中还提供了一些基本信息。

您也可以安装新Relic更清楚地了解高负载期间的进程列表和 I/O 状态。这将向您显示哪个项目导致了高负载。

您还可以检查日志存储用于日志或日志条目

您提到您还使用知名框架。请检查您是否为它们分配了足够的 RAM。我推测它们中的大多数都使用数据库。数据库服务器是否安装在同一台机器上?是否在专用机器上?您是否使用任何类型的缓存(Varnish、APC 等)?

答案2

您可以尝试安装 mytop 并监控服务器上运行的所有查询,它非常方便,我经常使用它,也可以尝试使用 mysql 的 jetprofiler,您可以在此处下载:http://www.jetprofiler.com/

相关内容