高流量网站的最低规格

高流量网站的最低规格

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

包含一些图像的 HTML 输出为 500 KB

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

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

答案1

500 KB * 150 req/s = 73 MByte/sec,或 586 Mbit/sec。这是相当可观的带宽:几乎 190 TByte/月的传输量。安装硬件来支持这一点其实相当容易;如果“简单”真的意味着“简单”,那么您可能可以使用(强大的)VPS,但带宽将成为一个绊脚石,因为大多数 VPS 主机都会拒绝(或收取高昂的费用)这种每月传输量。

您是否希望自己托管所有完整的、地理分散的 HA,或者是否值得将部分托管转移到 CDN 上?

答案2

这有点像问“什么样的车会赢得巴哈 1000 比赛?”。这要视情况而定。

此外,100% 正常运行时间也是不可能的。不过,你可以非常接近

话虽如此,您还是会想要做一些事情。

1) 无论你采用什么解决方案,都要确保你正在衡量一切可能的事情。通过指标,你可以确定你的配置是否过高或不足,并采取行动。你还可以查看趋势,并在事情开始恶化之前做出明智的选择。

2) 冗余是你的朋友。地理冗余(将应用程序拆分到不同地理区域的不同数据中心)、水平冗余(将应用程序服务器与数据库和内容服务器拆分)和垂直冗余(几个带有负载平衡器的小型服务器比 1 个大型服务器更好)。

这就是 10k 英尺的视野。

具体来说,对于您的情况,我将定义一组可以处理大约 75% 流量的服务器。可能有 2 - 3 个 Nginx 服务器(我个人选择,使用您觉得合适的服务器)位于一对 DB 服务器(1 个主服务器,1 个只读副本服务器)的前面。使用 Web 服务器代理回某种 FCGI 或其他应用服务器。确保前端服务器正在提供您的缓存页面(您正在缓存,对吗??)。

现在,你需要在前面放一些 LB。单个就够了,因为……

您将在另一个数据中心设置此副本。所有只读数据库副本,除非您想深入研究并设置主/主复制。

使用循环 DNS 在两个负载均衡器的 DNS CNAME 之间分割流量。

如果其中一个 DC 出现故障,只需将受影响的 cname 转移到正常运行的站点即可。

这将是昂贵的并且很难做到。

老实说,大多数人只会在单个 DC 中执行此操作,因为全程执行并不划算。

就我个人而言,我会从小处着手,看看效果如何。添加服务器应该很容易,过一段时间后,您就能看到您的应用程序需要哪些帮助。

相关内容