Gre*_*reg 5 performance lamp performance-monitoring performance-tuning top
我有一台运行自定义 Wordpress+bbPress 组合的 LAMP 服务器(基于 CentOS 的 MediaTemple (DV) Extreme,具有 2GB RAM)。
每天大约有 30k 的浏览量,服务器开始抱怨。今天早些时候,当车流涌入时,它绊倒了大约 5 分钟。即使在正常情况下,我也可以看到虚拟服务器有时处于 90% 以上的 CPU 负载。使用 Top 我经常可以看到 5-7 个 httpd 进程,每个进程都使用 15-30%(有时甚至 50%)的 CPU。
在我们进行大的优化之前(我们使用 MySQL 可能是罪魁祸首),我很想找到主要违规的页面并首先处理它们。有什么方法可以找出哪些特定请求对 CPU 消耗最大的 httpd 进程负责?我发现了很多关于优化的一般信息,但没有找到关于这个特定问题的信息。
其次,我知道有一百万个变量,但是如果您对我们是否应该使用具有这种规模的站点的单个专用虚拟服务器处于性能边界有任何见解,那么我很想听听您的意见。我们应该考虑迁移到更强大的服务器,还是应该专注于优化当前服务器?
strace
是开始调试此类问题的好方法。尝试跟踪消耗更多 CPU 的 Apache 进程之一的 pid:
strace -f -t -o strace.output -p PID
Run Code Online (Sandbox Code Playgroud)
这将显示在该过程中进行的系统调用。查看 strace.output 并查看该过程在做什么。这可能会为您指明方向,并告诉您进程挂在哪里。“-t”标志在这里非常重要,因为它将用一天中的时间作为 strace 输出的每一行的前缀。所以,寻找飞跃。
另一方面,正如您认为 MySQL 可能是罪魁祸首,我会启用慢查询日志,查看它并尝试优化该查询。有关慢查询日志的更多信息,请访问此处。
另外,不要忘记查看您的网络服务器的日志文件。
关于你的第二个问题,我认为仅凭这些信息很难说清楚。如果您有足够的预算,将前端(网络服务器)与后端(数据库)分开总是一个好习惯。另一方面,我认为在添加更多硬件之前,应该专注于尝试使用当前硬件优化性能。否则,问题很可能只是被推迟了。
希望这可以帮助。
归档时间: |
|
查看次数: |
3039 次 |
最近记录: |