如果您运行的是 Apache 2.2,请执行以下操作:
1. 启动到该实例的终端会话。如果您无法连接,则可能需要重新启动实例。
2. 在终端会话中,运行 top 命令以在实例上显示内存驻留进程列表。
按所用内存百分比降序对列表进行排序。
要对基于 rpm 的实例进行排序,按 Shift+O,然后按 n。对于其他 Linux 发行版,选择适当的选项以按内存使用情况对进程进行排序。
3. 扫描为 Apache 进程返回的 %MEM 值所组成的列,并确定平均值。
4. 查找与其他 Apache 进程的 %MEM 值相比,%MEM 值异常大的一个或多个 Apache 进程。%MEM 值较大,可能说明服务器上运行的某个 Web 应用程序存在内存泄漏的问题。要缓解潜在内存泄漏的影响,请将配置变量 MaxConnectionsPerChild 的默认值从 4000 更改为 1000。
此更改可以在您识别和纠正内存泄漏的来源时部分缓解此问题。如果您怀疑存在内存泄漏,则使用新的配置值更新实例上的 httpd.conf 文件,保存更改,然后跳到第 7 步。
5. 按以下方式计算 ServerLimit 和 MaxClients 配置变量的值:
如果实例的内存大于 4GB,则用 90% 除以 Apache 进程的平均 %MEM 值。例如,假设平均 %MEM 值为 0.8%,则用 90% (0.9) 除以 0.8% (0.008) 得 112.5,然后按最接近的整数向下取整,即 112。
如果实例的内存等于小于 4GB,则用 80% 除以 Apache 进程的平均 %MEM 值。例如,假设平均 %MEM 值为 0.8%,用 80% (0.8) 除以 0.8% (0.008),结果为 100。
注意:计算这些值的假设前提是,实例是专用 Web 服务器。如果您在该服务器上还托管了其他应用程序,请在执行计算之前从 90% 或 80% 中减去这些应用程序使用的内存总百分比。如果除 Apache 之外,您在内存等于小于 4GB 的实例上还运行了其他应用程序,则性能可能会降低。
6. 在 httpd.conf 文件中使用新值更新实例的 MaxClients 和 ServerLimit 配置变量,然后保存更改。
例如:
MaxClients = 112
ServerLimit = 112
7. 从终端会话运行以下命令,重新启动 Web 服务器: