Linux Nginx + php-fpm + cron + mysqld = 总是内存不足

Linux Nginx + php-fpm + cron + mysqld = 总是内存不足

我不明白。我有一个 VPS,装有 Nginx、php-fpm 和 MySQL。应该很轻量。没有 Apache,对吧?当我重新启动时,它非常轻量。~ 50/481 MB 内存使用量。在我看来非常可以接受。

几天后,有大约 20 个 mysqld 进程在运行,大约 7 个 php-fpm 进程和大约 8 个 getty 进程在运行,并且 1024 MB 交换空间的 3/4 已满,服务器内存不足!

我不是专业人士,但我很确定那是不对的......

我认为 cron 与此有关。我安排了 3 项工作:

  • 每分钟一次的简单操作(读取 smtp 以获取新邮件)
  • 每晚一个大博客(阅读来自约 30 个博客的 RSS)
  • 每天早上进行一个简单的操作(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 分钟内,交换量一直稳定在约 98 MB。

有人知道可能发生了什么吗?(​​我知道关于整个服务器的信息很少。)如果您愿意,我可以添加详细信息。

我甚至没有运营任何像样的网站!

更多信息:

屏幕内容htop --sort-key PERCENT_MEM顶部

Pastebin 与ps xvcat /proc/meminfotophttp://pastebin.com/PfXeupMN

答案1

问题出在服务器配置上(输入输出速度非常非常慢)。vps 提供商进行了硬件更新(我认为),问题已经解决。内存使用率可能仍然很高(我不知道),但总体而言,服务器速度再次变得非常快。

抱歉我之前没有提到这一点。

相关内容