是否有可能将期望的平均响应时间和平均请求率作为一个因素?
答案1
我不会说存在一种算法,至少我所知道的算法,因为它太复杂了。
您所需的服务器数量范围很广,取决于您的网站的功能、流量、重要性以及您需要的可靠性。
没有服务器端代码的小型低规模网站可以处理非常大量的流量,并且很可能在服务器不堪重负之前耗尽带宽。
如果您的网站非常复杂,处理大量项目等或需要 100% 正常运行时间,您可能需要很多服务器。
答案2
Jeff 是对的,这里的变量太多了,无法确定。如果你运行一个将视频转换为 MP3 的 Web 服务,CPU 会很快耗尽。如果你运行一个流式传输视频或音乐的网站,带宽就会饱和。然后你要考虑你用什么语言编写的,你的程序员有多优秀......
答案3
当然 - 并且每个网站及其所有组件都会有所不同:服务器的硬件(当然假设它们都是相同的),所有网络链接的速度(外部和内部,如果它是数据库密集型的。)
因此,对于您的代码,您可以使用类似 LoadRunner 的工具针对单个服务器将活动从一个增加到多个,并获得请求率(同时用户)和响应时间的图表。根据该数据创建一个适合直线或曲线的方程。
现在添加第二台服务器并进行完全相同的测试。看看方程式是否相同。现在将用户数量翻倍,看看图表是否继续遵循相同的方程式,或者是否不同。
继续这样做,您就会得到自己的算法。但是,在某个时候,您将无法添加 Web 服务器来改善响应时间。您发现了一个瓶颈,它不是 Web 服务器的数量。确定它是什么并修复它。
啊哈 - 现在除了请求数之外,您还改变了另一个变量。重新做所有工作。此外,每次更改代码、向数据库添加索引、改进硬件,甚至在 SAN 中放入更多缓存时,也都要重新做所有工作(例如)。
此外,对于用户来说,请记住,活动类型多种多样,想想亚马逊。有些用户只是浏览很多内容,有些用户花很多时间在评论或留言板上,有些用户把购物车装满然后结账?您必须从生产系统中测量用户活动的类型,以便将用户分类用于测试,其比率最好能模拟生产负载的情况。