我知道我的问题的标题相当模糊,所以我会尽量澄清。请随意缓和这个问题,使它对社会更有用。
给定一个标准的灯堆栈,或多或少地带有默认设置(允许进行一些调优,客户端和服务器端缓存打开),在现代硬件(16 on,8核CPU,无限磁盘空间等)上运行,部署相当复杂的CMS服务( Drupal或Wordpress项目,为了参数起见)--在我开始考虑性能之前,我可以合理地期望容纳多少流量、SQL查询、用户请求?
注意:我知道具体情况将在很大程度上取决于项目的细节,即优化MySQL查询、索引内容、最小化文件系统点击量--假设web开发人员做了一项专业工作--我真的在寻找非常粗略的数字,包括每天访问次数、高峰访问时间的流量、(事务性) MySQL之前的记录数量等等。
我知道真正回答我的问题的唯一方法是在一个真正的项目上运行负载测试,而且我担心我的问题可能会被视为部分过头。
我想从有第一手经验的人那里得到一组数据,例如:“我们运行了这样和那样的设置,它至少处理了如此多的负载问题。”我也非常感兴趣的任何宽容的(我的时间短的自动取款机),我可以做的,以更好地了解这件事。
我明天要见一个客户来谈论他的项目,如果他的项目被证明是类似FourSquare的,我想要考虑他的表现。
发布于 2013-02-26 09:30:00
很难回答没有细节,正如你已经注意到的。如果我的任务是你必须做什么,我将轮流拿每个组件(网络接口,CPU/内存,物理IO负载,SMP锁定等),并获得最大的可用容量,除以粗略估计每一个请求的使用。
例如,网络io。您可能有1x1GB的卡,它可能达到100兆字节/秒。(我倾向于使用理论最大值的80% )。一个典型的“命中”会有多大?对于HTML、图像等来说,平均可能是3千字节,这意味着在物理级别瓶颈之前,每秒可以达到33k个请求。这些数字是绝对最大值,取决于工具和技能,你可能无法接近它们,但没有人能超过这些最大值。
对每个组件重复上面的内容,也许稍微改变一下您的数字,然后您就可以快速地了解可能需要关注的内容。然后,考虑一下如何在每个组件中快速获得更多的容量,您是否可以丢弃$$并获得更高的性能(例如使用SSD驱动器而不是HD)?或者,如果不重新设计,您会遇到一个无法移动的极限吗?此外,考虑到您有哪些资源可用,您是否有大量熟练的程序员时间,DBA,或大量的现金?如果您有大量的资源,那么在您沿着经验曲线移动时,您可以更容易、更快地减少这些限制。
不要忘记外部组件,防火墙的限制可能低于预期的持续流量。
对不起,我不能给您真实的数字,我们的工作负载使用自定义服务器、高内存缓存和其他技巧,而没有使用您列出的所有产品。不过,我将主要关注IO/SQL查询,可能还有网络IO,因为这些限制往往比CPU/内存更难限制,尽管我相信其他人会有不同的看法。
发布于 2013-02-28 17:04:08
显然,这个问题没有一个“正确的”答案,但我想结束它并给出一些反馈。客户会议已经召开了,性能确实很好,他们的托管平台原来是在Amazon云上:)
从我独立做的研究来看:
https://stackoverflow.com/questions/15077843
复制相似问题