Debian - Apache 2.2 和 mod_php - 内存使用

Debian - Apache 2.2 和 mod_php - 内存使用

我的服务器(Debian 6.0)存在内存问题,其中安装了 Apache httpd 2.2、mod_php 和 APC。

实际上,httpd 似乎在等待 Mongodb 的答复时间过长(30 秒超时)时分配了所有可用内存(4GB)。好吧,我知道,30 秒的超时时间太长了。这种漫长的等待导致前端服务器开始交换内存,平均负载达到非常高的值(大约200),直到硬件完全卡住。

我想问题出在当前的 httpd 配置中,因为MaxClients设置为 200 并且 PHP 内存限制为 128MB。在最坏的情况下,我们只需要每个 PHP 引擎至少 25GB RAM,但我们有 4GB。

  • 128 兆字节 * 200 = 25 兆字节

我的拙见是:有了4GB,如果我们将php memory_limit缩小到96MB,我们应该支持大约48个fork(即MaxClients48)。即使 Apache httpd 分叉了一个新子进程,大部分内存也会与父进程共享。

  • 总内存 4GB = Apache 子级 96MB * 48MaxClients

但是如何准确知道所有 httpd 子进程共享多少内存以及每个 apache httpd 进程分配多少内存?

而谈论PHP和APC,即使在这种情况下,如何知道每个引擎共享了多少内存以及分配了多少内存?

相关内容