首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >帮助优化高流量的服务器

帮助优化高流量的服务器
EN

Stack Overflow用户
提问于 2013-04-07 04:19:08
回答 1查看 580关注 0票数 0

我需要一些帮助。目前,我有以下包:

2048 MB 80 GB RAID 10磁盘空间4xCPU优先级5000 GB带宽CentOS

(VPS-4) http://www.knownhost.com/vps_packages.html

我的VPS收到了很多流量。它甚至在一天内有一百万的页面浏览量!

尽管这很酷,但自从点击率大幅上升以来,我们一直被问题所困扰。

我们一开始使用的是SuPHP,这变得越来越耗费资源。服务器每隔几天就会宕机一次,我们会自动收到关于运行过多进程的电子邮件。

然后我们切换到FastCGI。它运行得很好,我们不再收到那些电子邮件了。然而,在高峰期,如果有很多人连接,那么网页就不会显示。您必须刷新页面几次才能使其显示(听起来好像所有的连接插槽都被卡住了)。

我们目前在这个服务器上使用NGINX + Apache w/ CPANEL + eAccelerator + FastCGI。

忽略当前的设置配置,并记住我们正在使用的硬件,你们有什么建议的配置可以最好地支持所有这些点击吗?

请记住,大量的点击发生在一个页面上(不要问!)该页面上几乎没有任何PHP (但部分是动态的,因此需要PHP ),甚至没有连接到数据库。

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-07 05:03:39

在整个过程中,我将修改nginx配置。Apache可以保持原样。

第1步:部署gzip压缩

这一步非常简单-- gzip-compress输出。

代码语言:javascript
复制
gzip             on;
gzip_min_length  1000;
gzip_proxied     expired no-cache no-store private auth;
gzip_types       text/plain application/xml application/json;

这将为以下内容启用gzip压缩: text/html (默认)、application/xml、application/json和text/plain。顺便说一下,我假设你提供的是来自CDN的图片。如果不是,也为他们启用它。

这应该会看到您使用的带宽有所下降,但会有轻微的CPU开销来抵消这一点。然而,CPU很少成为瓶颈-通常是带宽和磁盘I/O,特别是在静态站点上,所以我们将致力于解决这一问题。

Apache第2步(可选):如果可以,请删除

如果你只是提供静态内容,nginx本身是值得拥有的。如果您已经在使用fastCGI,请考虑使用PHP-FPM,它允许您省去Apache所占用的大量内存。

第3步:通过标头进行缓存

这将通过强制nginx服务的所有页面的本地缓存版本来降低带宽使用。相当酷的东西,因为它将完全防止客户重新下载他们已经有的东西。

代码语言:javascript
复制
expires       24h;
add_header    Cache-Control  public;

这一步还有一个前所未有的优势: apache将得到更少的查询。

第4步:内存中页面缓存

这一步将把你的页面从磁盘I/O转移到内存中。如果你有一个静态页面,你应该会看到这样做会有很大的收获。this question有很多关于这方面的内容。覆盖它将需要大量的时间。

这将有两个优点:

  • nginx将更多地从内存加载,而不是查询apache,从而减轻了Apache
  • Apache本身的负载,因此,从磁盘和分支工作线程读取

的频率会更低。

完成所有这些操作后,您应该会看到负载减少,这可能足以减少Apache上的工作进程数量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15855580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档