共享内存访问会导致rss增加

时间:2014-05-10 16:33:16

标签: c++ c apache ipc shared-memory

我有一个apache模块,在请求它时会将100MB的文件加载到内存中。

因此,为了减少执行时间,我尝试了IPC共享内存(父进程创建shm段,然后子进程附加它。)

我目前正在使用APR apr_shm_create(mmap + shmopen)。

但我发现每个子进程的RSS(ps aux | grep httpd)在执行时分别大约有100MB。 (除了附上的那一刻。)

问题:如何重置或阻止子进程的RSS增加,因此在整个httpd进程中内存消耗仅为100MB?这不可能吗?

1 个答案:

答案 0 :(得分:1)

进程的驻留集大小是映射到该进程内存并驻留在RAM中的内存页的总大小。当进程附加到大小为100 MB的共享内存时,其RSS将增加100 MB(如果共享内存段驻留在RAM中且未交换或尚未物理分配)。但这并不意味着占用了更多的物理RAM。