高stream量网站的最低规格

我有一个网站,其中包含一个PHP页面运行3个简单的SQL查询MySQL数据库2个简单的select查询和1个简单的更新。

一些图像的HTML输出是500 KB

服务器需要处理每秒50-150个请求。

您能帮我确定服务器为确保100%正常运行所需的最低规格吗?

500 KB * 150 req / s = 73 MByte / sec或586 Mbit / sec。 这是一个相当大的带宽:几乎190 TByte /月的转移。 为了支持这个硬件,实际上很简单, 如果“简单”真的意味着“简单”,你可能会得到一个(强壮的)VPS,但带宽将成为一个绊脚石,因为大多数VPS主机将会畏惧(或收取高昂的费用)每月转账。

你想把所有东西都托pipe在全地理分散的HA中吗?还是值得将一些托pipe工作卸载到CDN上?

这有点像说“什么样的车能赢得巴哈1000?”。 这取决于。

而且,100%的正常运行时间是不可能的。 但是,您可以closures

这就是说,有几件事你会想要做的。

1)什么解决scheme到位,确保你正在测量你所能做的一切。 使用指标,您可以确定您是否过度或不足,并采取措施。 你也可以看到趋势,并在事情开始之前做出明智的select。

2)冗余是你的朋友。 地理冗余(将应用程序分解到不同地理区域的不同数据中心),横向(将应用程序服务器从数据库和内容服务器分开)和垂直(使用负载均衡器的几个小于1的大)。

所以,这就是10K英尺的观点。

具体来说,就你而言,我会定义一组服务器,可以处理大约75%的stream量。 面向一对DB服务器(1个主服务器,1个只读副本),可能有2 – 3个Nginx服务器(我个人select,使用你感到舒服的)。 使用Web服务器代理回某种FCGI或其他应用程序服务器。 确保前端服务器正在为您的caching页面提供服务(您正在caching,对吗?)。

现在,你需要在这个前面放一些LB。 单身会很好,因为…

您将在另一个数据中心中设置这个副本。 所有只读的数据库副本,除非你想深入,并获得主/主复制设置。

使用循环DNS来拆分两个负载均衡器的DNS CNAMES之间的stream量。

如果在某个DC出现故障,只需将受影响的cname转移到站点上。

这将是昂贵的 ,很难做到。

老实说,大多数人只会在一个单一的区议会,因为这是不符合成本效益的方式。

就我个人而言,我会从小开始,看看它是如何成立的。 添加服务器应该很容易,而且在一段时间之后,您将能够看到应用程序需要帮助的位置。