apache如何解决CPU负载过高的问题? (ubuntu+ec2)

问题描述 投票:0回答:3

我在 Amazon EC2 中设置一个实例,这是一个运行 apache2、php5 和 mysql 的 ubuntu 10.04 服务器。

使用系统的用户少于 10 个时,服务器会获得 20%、30%、40% 的 CPU 负载。

使用 top 我在第一行看到:

11121 www-数据 20 0 71940 20m 11m S | 22.6 | 22.6 1.2 | 1.2 0:00.68 阿帕奇2
10108 www-数据 20 0 72196 22m 12m S | 21.9 | 21.9 1.3 | 1.3 1:15.81 阿帕奇2
11122 www-数据 20 0 71936 20m 11m S | 7.3 | 7.3 1.2 | 1.2 0:00.68 阿帕奇2
10111 www-数据 20 0 72196 22m 12m S | 1.7 | 1.7 1.3 | 1.3 1:16.43 阿帕奇2

这4行的CPU总和是53,5。

如何查看更详细的流程?
我如何查看正在运行的脚本、所需的时间以及每个脚本消耗的处理器数量?

谢谢。

apache ubuntu apache2 cpu
3个回答
8
投票

我通过安装 Apache mod Status 解决了这个问题 - http://httpd.apache.org/docs/2.0/mod/mod_status.html。在那里您可以看到所使用的 URL 上的每个 PID。

希望对大家有帮助...


3
投票

查看其功能的一种方法是使用

lsof
(您可能需要安装它)。要查看示例中的进程正在访问哪些内容,您可以执行以下操作:

lsof -p 11121,10108,11122,10111

这将显示该进程已打开的所有文件。通常 Apache 进程上的高 CPU 是由于网站试图在服务器端执行某些操作。


2
投票

您可以在父进程上使用 strace 来更好地了解它在做什么。

© www.soinside.com 2019 - 2024. All rights reserved.