我有一个apache模块,在请求它时会将100MB的文件加载到内存中。
因此,为了减少执行时间,我尝试了IPC共享内存(父进程创建shm段,然后子进程附加它。)
我目前正在使用APR apr_shm_create(mmap + shmopen)。
但我发现每个子进程的RSS(ps aux | grep httpd
)在执行时分别大约有100MB。 (除了附上的那一刻。)
问题:如何重置或阻止子进程的RSS增加,因此在整个httpd进程中内存消耗仅为100MB?这不可能吗?
答案 0 :(得分:1)
进程的驻留集大小是映射到该进程内存并驻留在RAM中的内存页的总大小。当进程附加到大小为100 MB的共享内存时,其RSS
将增加100 MB(如果共享内存段驻留在RAM中且未交换或尚未物理分配)。但这并不意味着占用了更多的物理RAM。