我需要一些帮助。目前,我有以下包:
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 ),甚至没有连接到数据库。
非常感谢。
发布于 2013-04-07 05:03:39
在整个过程中,我将修改nginx配置。Apache可以保持原样。
第1步:部署gzip压缩
这一步非常简单-- gzip-compress输出。
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服务的所有页面的本地缓存版本来降低带宽使用。相当酷的东西,因为它将完全防止客户重新下载他们已经有的东西。
expires 24h;
add_header Cache-Control public;这一步还有一个前所未有的优势: apache将得到更少的查询。
第4步:内存中页面缓存
这一步将把你的页面从磁盘I/O转移到内存中。如果你有一个静态页面,你应该会看到这样做会有很大的收获。this question有很多关于这方面的内容。覆盖它将需要大量的时间。
这将有两个优点:
的频率会更低。
完成所有这些操作后,您应该会看到负载减少,这可能足以减少Apache上的工作进程数量。
https://stackoverflow.com/questions/15855580
复制相似问题