mod_php 使用的私有脏 RSS 是否会被提供给其他进程?

mod_php 使用的私有脏 RSS 是否会被提供给其他进程?

我正在运行 PHP 进程,偶尔会短暂使用大量 RAM。

当 PHP 使用大量 RAM 后,httpd 进程似乎会无限期地保留相同的私有脏 RSS。即使在处理稍后占用内存较少的请求时也是如此。以下是 pmap 中的相关行。

% tinysu pmap -x 30247
30247:   /usr/sbin/httpd
Address           Kbytes     RSS   Dirty Mode   Mapping
00002b914046f000   60712   57324   57124 rw---    [ anon ]
00002b9144cfa000   12676   12448   12448 rw---    [ anon ]
00002b9145a3b000   27400   26964   26964 rw---    [ anon ]

该内存是否可以供系统其余部分使用?

对于诸如持久性 memcached 连接之类的操作,我将 httpd.conf 中的 MaxRequestPerChild 设置为 10000。我是否需要降低该值以确保释放内存,以便偶尔的内存密集型操作最终不会导致每个 httpd 进程占用远远超过其所需的内存?

我尝试在 httpd.conf 中使用 MaxMemFree,但没有任何区别。

答案1

据我所知,不会。它永远不会像那样释放内存。您需要更改 Apache 设置,以便经常回收子进程。

相关内容