在具有 30GB 内存的服务器上处理相当大容量的流量。
由于某种原因,最近 Apache2 开始运行内存使用量疯狂增长的线程。目前,每个线程 500MB-750MB 的内存使用量并不罕见。
php.ini 有memory_limit = 128M
(php7.0默认)。
Apache prefork 配置是默认的。
结果是我们运行时仅有约 1GB 的可用内存。
我错过了什么?
我们有 Nginx 代理请求,它的进程大约每个线程 60MB。以下是运行的屏幕截图top
任何关于导致这一现象的原因的见解都将受到赞赏!
答案1
从上面的输出来看,Apache 进程似乎在内存中有 20-50MB 的“res”(常驻内存)。“virt”你不需要担心记忆吗,一般来说,它可以是映射文件而不是实际使用的RAM。
我可以看到您有 28GB 的内存“缓存”。这通常是缓存文件。这是一件好事,它使操作系统不必转到磁盘来访问文件。
我认为你可能会受益于“Linux 占用了我的内存“ 网站。
这到底是什么问题?您的系统是否每次都报告“内存不足”,或者由于 RAM 不足而导致进程失败?