apache运行django的mod_wsgi的httpd进程奇怪的strace输出

我有大约12个httpd进程运行RHEL aws框,没有人在浏览器中打开(共享的团队开发框)。 这些进程一起在开发盒上消耗了超过1.8GB的内存,而且我已经看到它在生产上达到了6GB。 每个进程消耗大约800 MB的ps aux。 我对他们中的一个做了一个调查,然后离开了一段时间,发现:

<venv>/django/contrib/flatpages/templatetags/analytical 0x7fff37ef41a0) = -1 ENOENT (No such file or directory) <venv>/django/contrib/flatpages/templatetags/analytical.py, O_RDONLY) = -1 ENOENT (No such file or directory) <venv>/pagination/templatetags/expert_tags.py, O_RDONLY) = -1 ENOENT (No such file or directory) <venv>/django/templatetags/raven.py, O_RDONLY) = -1 ENOENT (No such file or directory) <vevn>/django_extensions/templatetags/raven.py O_RDONLY) = -1 ENOENT (No such file or directory) 

有; 用一个笑话,成千上万的这些ENOENT消息在5分钟的范围内。 所有types的不同文件。

其他3个过程显示了一些有趣的事情

 read(4, 0x7fff37efa00f, 1) = -1 EAGAIN (Resource temporarily unavailable) 

任何方式来找出哪些资源被引用在这里?

我不是一个OS编程专家,但我认为这是不正常的? 任何想法如何我可以找出是什么原因造成的? 如何预防呢?

奇怪的是,这raven.py当然是一个真正的缺失文件,但我们有一个虚拟env调用第三方库

 raven (3.5.1) 

虽然还不能确定为什么这么多ENOENT,有一个小姐了解的Apacheconfiguration。 我假设mod_wsgi是作为一个守护进程运行的,当它运行在embedded式模式下时。 apache worker.c部分将进程数量设置为8,扩展为25,这就是为什么有这么多的备用进程。

每个进程预留了大约800MB的VM空间,大约120MB的RAM。 一旦mod_wsgi被改为一个守护进程,这些数字下降到VM空间大约200MB和RAM 8MB! apache的整体内存消耗从1 GB降至64 MB!