Nginx
Apache2 使用大量記憶體
在具有 30GB 記憶體的伺服器上服務於大容量的流量。
出於某種原因,最近 Apache2 已經開始使用瘋狂的記憶體使用執行執行緒。每個執行緒 500MB-750MB 現在並不少見。
php.ini 有
memory_limit = 128M
(php7.0 預設)。Apache prefork 配置是預設的。
結果是我們執行時只有約 1GB 的可用記憶體。
我錯過了什麼?
我們有 Nginx 代理請求,它的程序更像是每個執行緒約 60MB。這是執行的截圖
top
任何有關可能導致這種情況的見解都將受到讚賞!
從上面的輸出看來,Apache 程序在記憶體中有 20-50MB 的“res”(駐留)。“virt”不是您需要擔心的記憶體,通常它可以映射文件,而不是實際使用的 RAM。
我可以看到你有 28GB 的記憶體“記憶體”。這通常是記憶體文件。這是一件好事,它使作業系統不必去磁碟訪問文件。
我認為您可能會從“ Linux Ate My RAM ”網站中受益。
這究竟是什麼造成的問題?您的系統是否每次都報告“記憶體不足”,或者程序因 RAM 不足而失敗?