Php 如何减少VPS内存使用

Php 如何减少VPS内存使用,php,apache,vps,Php,Apache,Vps,我的副总裁有些问题 我们正在使用VPS来运行我们的CMS和我们的网站,因为现在我们有300MB的内存限制,现在我们接近这个限制 保持低成本(我知道,增加内存不会太贵),但如果我找到一个解决方案来优化我们现有的,将会更好 我能做什么 谢谢 我建议增加内存-内存越多,网站速度越快:-) 但如果速度不重要,请减小所有缓存大小,将php内存限制设置为8M,禁用操作码缓存(APC、eAccelerator) 或者尝试Raspberry Pi作为服务器,现在配备512MB:-)我建议增加内存-内存越多,网站

我的副总裁有些问题

我们正在使用VPS来运行我们的CMS和我们的网站,因为现在我们有300MB的内存限制,现在我们接近这个限制

保持低成本(我知道,增加内存不会太贵),但如果我找到一个解决方案来优化我们现有的,将会更好

我能做什么


谢谢

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

我建议增加内存-内存越多,网站速度越快:-) 但如果速度不重要,请减小所有缓存大小,将php内存限制设置为8M,禁用操作码缓存(APC、eAccelerator)
或者尝试使用Raspberry Pi作为服务器,现在提供512MB:-)

它是什么类型的VPS?OpenVZ?Xen?KVM?如果是OpenVZ,它是否有VSwap或突发内存


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

它是什么类型的VPS?OpenVZ?Xen?KVM?如果是OpenVZ,它是否有VSwap或突发内存


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

< P>我将查看NGIX,如CONTROT49推荐的,如果您只有一个网站,也可以考虑LITESPEDE(www. ListePeeTeal.com)。他们有一个免费版本,这可能足以为您的网站供电


如果它是基于PHP的,那么去掉所有你没有使用的东西。使用APC/XCache处理每个请求。NGNIX也有一个缓存模块,它可以帮助你避免对PHP的每一个请求,如果它仍然是新鲜的。

< P>我会看NGIX像协奏曲49推荐的,如果你只有一个网站,也考虑LITESPED(www. ListePeeTeal.com),他们有一个免费的版本,这可能足以为你的网站提供动力。
如果它是基于PHP的,那么去掉所有你没有使用的东西。使用APC/XCache处理每个请求。Nginx还有一个缓存模块,可以帮助您避免在每个请求仍然新鲜的情况下使用PHP apache+php+mariadb(mysqld)

我发现apache每次请求一个简单的wordpress页面时都会占用20MB的内存。它会稳定下来,但随着时间的推移,它会吞噬交换空间,让一切变得缓慢。我怀疑有一些方法可以微调mpm_事件和mpm_工作者以停止进入交换,但我不知道如何进行

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

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

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

  • 在apache中,选择使用mod_mpm_prefork而不是mpm_事件和mpm_worker(“apachectl-V”将告诉您正在使用哪个)

  • 为maxserver设置合理的值(从服务器数和请求数的较低值开始,然后逐步增加)

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

  • 您应该能够看到内存&随着负载的增加,正在创建和销毁的进程
  • 调整httpd服务器设置并重新测试,直到满意为止

  • 我喜欢看到内存最大值不超过90%,并且在我确信它不会停止运行(开始使用交换)之前,在负载消失时减少内存

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

  • 我还设置了一个cron作业,在swap开始被大量使用时向我发送一封电子邮件,这样我可以重新启动一些东西,甚至重新启动整个服务器。如果我找不到使用内存的内容,这种情况应该会发生得越来越少

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


只有我的两便士…

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

我发现apache每次请求一个简单的wordpress页面时都会占用20MB的内存。它会稳定下来,但随着时间的推移,它会吞噬交换空间,让一切变得缓慢。我怀疑有一些方法可以微调mpm_事件和mpm_工作者以停止进入交换,但我不知道如何进行

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

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

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

  • 在apache中,选择使用mod_mpm_prefork而不是mpm_事件和mpm_worker(“apachectl”)-