如何减少VPS内存使用量

时间:2012-11-14 23:35:11

标签: php apache vps

我的VPS存在问题。

我们正在使用VPS运行我们的CMS和我们的网站,目前我们有300MB内存限制,现在我们已接近达到限制。

保持低成本(我知道,增加内存并不是太昂贵),但如果我找到优化我们所拥有的解决方案,那就更好了。

我该怎么办?

谢谢!

4 个答案:

答案 0 :(得分:3)

我建议增加内存 - 更多内存,更快的网站:-) 但是如果速度不重要,减少所有缓存大小,将php memory_limit设置为8M,禁用操作码缓存(APC,eAccelerator) 或尝试使用Raspberry Pi作为服务器,现在配备512MB: - )

答案 1 :(得分:2)

我有一个小的256MB vps使用 apache + php + mariadb(mysqld)

我发现在一个简单的wordpress页面,每次请求20MB时,内存都会被apache吞噬。它会解决,但随着时间的流逝吞噬交换空间,让所有东西慢慢爬行。我怀疑有很多方法可以微调mpm_event和mpm_worker来停止进入交换但是我没弄明白怎么做。

在如此紧张的环境中工作时,了解使用什么内存并减少所有内容非常重要,这样才能最大限度地减少交换。

我所做的总结如下,我设法获得100MB的物理空间进行调整,这不是一个负载很重的服务器,但需要可访问(并且便宜):

  • 使用slackware(操作系统和默认服务似乎比debian使用更少的内存,默认情况下,我的提供商图像上默认加载的内容较少)
  • 关闭mysqld innodb表并使用myisam
  • 配置mysqld以减少缓存大小(如果相关)
  • 安装cms fresh所以他们肯定使用myisam或更改所有表格

  • apache中的
  • 选择使用mod_mpm_prefork而不是mpm_event和mpm_worker(“apachectl -V”会告诉你正在使用哪个)

  • 为maxserver设置合理值(从服务器和请求数量的低值开始并开始工作)

  • 在负载下测试服务器,同时通过ssh“免费观看”或“顶部”

  • 你应该能够看到记忆和随着负载的增加而创建和销毁的流程
  • 调整您的httpd服务器设置并重新测试,直到开心

  • 我希望看到内存最大不超过90%并且在负载消失之前减少回落,然后我确信它会保持不动而不停止(开始使用交换)。

  • 检查你的php.ini内存设置,如另一个答案中所述。

  • 我还设置了一个cron作业,当交换开始大量使用时给我发电子邮件,所以我可以重新启动一些东西,甚至重新启动整个服务器,如果我找不到已经使用过的内存,这个应该越来越少,你调得越多越好。

如上所述,这不是一个在重负荷下表现良好的环境,但成本可能对您来说更重要。

只是我的两便士...

答案 2 :(得分:1)

我会像推荐的Concerto 49一样看Nginx,如果你只有一个网站也考虑Litespeed(www.litespeedtech.com),他们有一个免费版本可能足以支持你的网站。

如果基于PHP,则删除您未使用的所有内容。使用APC / XCache处理每个请求。 Nginx还有一个缓存模块,它可以提供帮助,因此如果它仍然新鲜,你可以避免为每个请求点击PHP。

答案 3 :(得分:-1)

它是什么类型的VPS? OpenVZ的? Xen的? KVM?如果它是OpenVZ它有VSwap还是Burst内存?

您在运行什么类型的CMS /网站?它是基于PHP吗?你在使用Apache吗?如果是这样你试过nginx?我将着眼于优化Web服务器组件并删除未使用的进程/应用程序以减少内存并提高性能。