首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何达到每分钟150页以上的浏览量?

如何达到每分钟150页以上的浏览量?
EN

Server Fault用户
提问于 2010-02-13 12:38:25
回答 3查看 2.1K关注 0票数 1

我有一个用PHP编写的Facebook应用程序。它每分钟有150页的浏览量,到今年年底,每分钟将有多达300页的浏览量。在获得更多PV的同时,我开始在可伸缩性方面遇到问题,因此,我想请您提供一个建议,即如何扩展到成功地处理300 PV /分钟。

我的应用程序是一个类似于quizz的应用程序,它托管在VPS上,可以使用:

  • 一个核心2,6 GHz处理器的100%
  • 500 MB,最多2GB内存(cat /proc/user_beancounters说我真的有私处= 500 MB,免费-m显示2GB)

我的VPS的配置如下:

  • Centos 5
  • 莱特普
  • 梅卡奇
  • APC
  • MySQL
  • 使用FastCGI的PHP

在过去的几个月里,我利用互联网上提供的一些教程来优化MySQL、Lighttpd和。我成功地广泛使用了Memcached,因此很多请求降到了1ms,而那些未被memcache处理的请求占用了多达300 ms。我为MySQL添加了很好的索引,所以它不在用户的范围之内。

有一段时间以上的优化已经足够处理新的请求了,但是最近由于应用程序的日益流行,我注意到有些请求花费了3秒以上,在关键时刻,我的Lighttpd只说f*,您和用户得到了内部服务器错误500。

我设法找到了一个解决方案(我今天肯定会知道这一点),通过设置以下方法修复错误500:

代码语言:javascript
复制
"PHP_FCGI_MAX_REQUESTS" => "500"

但可伸缩性问题仍未得到解决。我需要能够处理比现在多2倍的请求。我想该怎么做。以下是我今天提出的解决方案:

  1. 两个核心上的VPS到3,3 GHz
  2. 购买另一个VPS并将数据库移到那里。
  3. 找人帮忙(我现在这么做)

我可以在我的VPS分销商购买一个更大的计划,有3,3千兆赫取代2,6千兆赫,我现在和两个核心,而不是一个。这需要更多的钱,但能帮到我吗?如何计算它是否将处理300 PV?

我的第二个想法是购买另一个VPS并将数据库移到那里。为FastCGI进程和数据库进程提供CPU和内存的增益。但是,如何才能知道是否更好地产生另一个服务器或购买更大的计划,为此我现在有?

所以我谈了3点--去问别人。所以我现在是一个程序员,而不是管理员,有一个非常大的可伸缩性问题,并请求您的帮助。

我想知道如何计算我现在的VPS每分钟能处理多少PV --这将帮助我做出决定。因为如果300 PV超出了我目前的VPS能力--我可以立即考虑其他解决方案,而不是干扰更多的配置。

第二,如果我的VPS可以处理更多的请求--这是配置问题--那么我需要更多的知识来帮助我设置配置权限。我可以在这里提供这个配置,或者通过电子邮件发送某人,并希望从你那里知道谁有时间和知识来帮助我。我没有时间在这件事上做更多的实验。

最后,如果它超出了我的VPS能力,我想从您那里知道如何决定我是否应该升级我的VPS或生成其他服务器?什么样的解决方案会更好的300光伏目标?

如果你谈到我的问题的这一点,请提前感谢你的提问。您的帮助,建议或联系的人谁可以帮助在这一问题上将是非常螺旋我!

EN

回答 3

Server Fault用户

发布于 2010-02-14 13:10:31

对不起,你确定你说的是每分钟,而不是每秒的页面浏览量吗?每分钟300页只意味着每秒5页,任何移动电话都应该能够不出汗地传输这些页面,所以我真的无法想象2.6 GHz处理器不能做到这一点!

如果您确实是在谈论分钟,那么监视您的磁盘I/O、CPU和内存。正确设计的应用程序不可能运行得这么慢,所以您肯定有一个很大的调优问题。也许您正在对MySQL数据库或memcache进行数千次访问,并且您对I/O延迟非常敏感(在这种情况下,CPU将几乎没有使用)。如果您的CPU一直都是满的,那么您的代码中就出现了一些错误,试图优化I/O和其他组件是毫无价值的,唯一可行的解决方案就是修复代码。

票数 3
EN

Server Fault用户

发布于 2010-02-13 15:17:56

我倾向于同意David Spillett的回答。我要补充的是,将应用程序和数据库放在同一个节点上也是一个主要的瓶颈,因为数据库一般都需要内存。我托管了几个流量很高的站点,就像你描述的那样繁忙,我们从来没有把数据库层放在VM上,也没有把数据库层放在我们的web和应用程序层上;我们的数据库总是在真正的专用硬件上运行。

我们的前端(取决于体系结构)是使用Cisco CSMs进行负载平衡的,但是您可以对apache进行类似的负载平衡。

如果你是一个Linux商店,有很多方法可以解决这个问题,而不需要昂贵的思科硬件。

看看这个:http://haproxy.1wt.eu/

票数 0
EN

Server Fault用户

发布于 2010-02-14 14:20:47

我想知道如何计算我现在的VPS每分钟能处理多少PV --这将帮助我做出决定。因为如果300 PV超出了我目前的VPS能力--我可以立即考虑其他解决方案,而不是干扰更多的配置。

这非常非常困难。很难预测优化会产生什么样的影响。以及与系统其他部分的交互。

你需要做实验。

第二,如果我的VPS可以处理更多的请求--这是配置问题--那么我需要更多的知识来帮助我设置配置权限。我可以在这里提供这个配置,或者通过电子邮件发送某人,并希望从你那里知道谁有时间和知识来帮助我。我没有时间在这件事上做更多的实验。

如果你不能做实验,任何人都能做的就是瞎猜。也许能行。你可能会有一个特别幸运和准确的盲目猜测。

您应该分析并检查运行中的系统。上面有人“猜到”你正在进行交换,这可能是一个很好的猜测。首先使用top、vmstat、sar来获取框正在做什么的图片。你的CPU挂接了吗?你在做大规模的调查吗?你们在交换吗?这将给你一个合理的想法,什么是问题。

您的问题可能介于lighthttpd、PHP、memcache、MySQL之间。通常的嫌疑犯是:

  • PHP与CPU挂钩
  • 具有少量缓存命中的memcache (没有足够的空间缓存所需的一切)
  • MySQL很慢。例如,如果您正在执行大量的写操作,那么写争用可能会杀死您。

你应该能找出这三个问题中的一个。

每分钟300次的页面浏览量并不多,即每秒5次页面浏览量,所以似乎出现了一些不稳定的现象。

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

https://serverfault.com/questions/112536

复制
相关文章

相似问题

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