是否存在一种算法可以帮助确定需要多少台机器托管一个网站?

是否存在一种算法可以帮助确定需要多少台机器托管一个网站?

是否有可能将期望的平均响应时间和平均请求率作为一个因素?

答案1

我不会说存在一种算法,至少我所知道的算法,因为它太复杂了。

您所需的服务器数量范围很广,取决于您的网站的功能、流量、重要性以及您需要的可靠性。

没有服务器端代码的小型低规模网站可以处理非常大量的流量,并且很可能在服务器不堪重负之前耗尽带宽。

如果您的网站非常复杂,处理大量项目等或需要 100% 正常运行时间,您可能需要很多服务器。

答案2

Jeff 是对的,这里的变量太多了,无法确定。如果你运行一个将视频转换为 MP3 的 Web 服务,CPU 会很快耗尽。如果你运行一个流式传输视频或音乐的网站,带宽就会饱和。然后你要考虑你用什么语言编写的,你的程序员有多优秀......

答案3

当然 - 并且每个网站及其所有组件都会有所不同:服务器的硬件(当然假设它们都是相同的),所有网络链接的速度(外部和内部,如果它是数据库密集型的。)

因此,对于您的代码,您可以使用类似 LoadRunner 的工具针对单个服务器将活动从一个增加到多个,并获得请求率(同时用户)和响应时间的图表。根据该数据创建一个适合直线或曲线的方程。

现在添加第二台服务器并进行完全相同的测试。看看方程式是否相同。现在将用户数量翻倍,看看图表是否继续遵循相同的方程式,或者是否不同。

继续这样做,您就会得到自己的算法。但是,在某个时候,您将无法添加 Web 服务器来改善响应时间。您发现了一个瓶颈,它不是 Web 服务器的数量。确定它是什么并修复它。

啊哈 - 现在除了请求数之外,您还改变了另一个变量。重新做所有工作。此外,每次更改代码、向数据库添加索引、改进硬件,甚至在 SAN 中放入更多缓存时,也都要重新做所有工作(例如)。

此外,对于用户来说,请记住,活动类型多种多样,想想亚马逊。有些用户只是浏览很多内容,有些用户花很多时间在评论或留言板上,有些用户把购物车装满然后结账?您必须从生产系统中测量用户活动的类型,以便将用户分类用于测试,其比率最好能模拟生产负载的情况。

答案4

这样的建模系统是存在的,但价格昂贵。 超塑性光网络作为您问题的解决方案集。需要记住的一点是,所有模型都包含一定程度的假设,将来某个时候,您需要对您的模型/建议模型进行实际性能测试,以查看这些假设是否正确以及系统是否按预期扩展。实际性能测试通常会产生新信息,这些信息可用于更新模型,使其成为实际应用程序性能的更好预测器。

相关内容