什么可能包含所需的平均响应时间和平均请求率作为一个因素?
我不会说有一个algorithm,至less我知道这个algorithm太复杂了。
您需要的服务器数量范围很广,取决于您的网站所做的事情,获得的stream量,网站的重要性以及您需要的可靠性。
没有服务器端代码的小型小型站点可以处理大量的stream量,并且在服务器不堪重负之前可能会耗尽带宽。
如果您的网站非常复杂,处理项目数量很多或者需要100%的运行时间,则您需要很多服务器。
杰夫是正确的,这里的variables数量太大,以至于难以把握。 如果你运行一个将video转换成MP3的networking服务,CPU将会变得非常快。 如果您运行的网站stream式传输video或音乐,带宽将饱和。 那么你有什么语言你写的,你的编码器有多好…..
当然 – 每个网站及其所有组件都会有所不同:服务器的硬件(假设它们完全相同),所有networking链接的速度(外部和内部,如果数据库很重)。
因此,对于您的代码,您可以使用LoadRunner之类的工具将活动从一个服务器增加到一个服务器,并获得请求率(同时用户)和响应时间的graphics。 根据符合直线或曲线的数据制作一个等式。
现在添加第二台服务器,并执行完全相同的testing。 看看方程是否相同。 现在加倍用户数量,看看图表是否在相同的方程上继续,或者如果它不同。
继续这样做,你有你的algorithm。 但是,在某些时候,您将不能添加Web服务器来提高响应时间。 你已经find了一个不是你的networking服务器数量的瓶颈。 确定是什么并修复它。
啊哈 – 现在你已经改变了另一个variables,除了请求的数量。 重新做你所有的工作。 每次更改代码时,还要重新执行所有工作,或者为数据库添加索引,或者改进硬件,甚至在SAN中放入更多caching(例如)。
另外 – 对于用户,请记住,有不同types的活动 – 想想亚马逊。 一些用户是否浏览了很多,有些用户花了很多时间在评论或留言板上,做一些加载购物车,然后结账? 您必须从您的生产系统中测量用户活动的types,以便在您的testing中使用用户类,以希望模仿生产负载的比例。
这样的build模系统存在,但是它们很昂贵。 看看Hyperformix和Opnet作为你的问题的解决scheme。 有一件事要记住,所有的模型都包含一定程度的假设,在未来的某个时刻,您将需要对您的模型/build议的模型进行实际的性能testing,以确定这些假设是否正确,预料到的。 通常情况下,实际性能testing会导致新的信息被用来更新模型,使其成为实际应用程序性能的更好预测。