Linux

Linux Nginx + php-fpm + cron + mysqld = 總是記憶體不足

  • October 28, 2013

我不明白。我有一個帶有 Nginx 和 php-fpm 和 MySQL 的 VPS。應該很輕。沒有阿帕奇,對吧?當我重新啟動時,它非常輕巧。~ 50/481 MB 記憶體使用量。非常可接受的國際海事組織。

幾天后,有 ~ 20 個 mysqld 程序正在執行, ~ 7 個 php-fpm 程序和 ~ 8 個 getty 程序和 1024 MB 的 3/4 交換已滿,伺服器記憶體不足!

我不是專業人士,但我很確定這是不對的……

我認為crons與它有關。我安排了 3 個工作:

  • 每分鐘一個簡單的(閱讀新郵件的 smtp)
  • 每天晚上一大篇(閱讀大約 30 個部落格的 RSS)
  • 每天早上一個簡單的(2個小數據庫的mysqldump)

我不確定我為什麼這麼認為=) 可能是因為簡單的工作(SMTP,每分鐘)總是在 htop 列表中。(但總是使用 0% cpu、0% mem 和 0:00:00 時間……)

20個mysqld的也很奇怪,不過好像不需要很多記憶體。

php-fpm 顯然確實消耗了大量記憶體。在寫這篇文章的 10 分鐘內,記憶體已從 66 MB 變為 120 MB!前 6 個記憶體消耗程序是php-fpm: pool www. 當我重新啟動時/etc/init.d/php5-fpm,記憶體下降到 ~ 70 MB。php-fpm 如何需要 400+ MB 的記憶體?那是怎麼回事?

在過去的 10 分鐘內,Swap 相當穩定在 ~ 98 MB。

有誰知道可能會發生什麼?(我知道整個伺服器上的資訊很少。)如果您願意,我可以添加詳細資訊。

我什至沒有執行任何體面大小的網站!

更多資訊:

螢幕htop --sort-key PERCENT_MEMhtop

Pastebin 與ps xv,cat /proc/meminfotop: http://pastebin.com/PfXeupMN

應該歸咎於伺服器配置(非常非常慢的 i/o)中有問題。vps 提供商進行了硬體更新(我認為),這一切都已修復。記憶體使用率可能仍然很高(我不知道),但總體而言伺服器再次超級快。

抱歉,我之前沒有提到這一點。

引用自:https://serverfault.com/questions/433786