是否有任何启发式定义典型应用程序的服务器要求? 从内部发展到less数用户,这是我们首次部署互联网应用。 在内部,我们只是根据需要进行部署,监控和采取行动,但由于预算紧张,需要进行远程部署,所以我必须进行更精确的估算。
我有以下来源的参数估计input:
在testing中,我得到: – stream量 – SQL请求的数量
从项目pipe理中,我可以得到预计的总数和同时连接的用户数量。
有一个经验法则,我可以应用这些参数?
没有一个简单的math公式来确定你将面临的负载。 您的负载可以根据以下原因发生戏
有关如何做容量规划的思想stream派,但比一些公式复杂得多。
有很多你需要考虑的variables,所以没有简单的方法来做到这一点。 你需要考虑几件事(除了Brent Ozar的优秀笔记外):
对于一个新的应用程序,部署的最好方法是购买一对显着低于预算的可伸缩服务器。 尽可能慢地推出你的应用程序(例如,自己和几个值得信赖的顾客,然后逐渐将它公开给大众)。
在此过程中,请密切注意您可以掌握的每项绩效指标,以确定您的瓶颈位置。 把你之前储蓄的钱花在开放这些瓶颈上。
这种做法不会让你在一场大风暴中发动,但是这会避免以后的很多麻烦。
没有银弹; 根据应用程序的性质,用户可能会看到更多的负载。 例如,站点上的许多Ajax可以大大增加Web和DB服务器的负载。
我听说每个1GB RAM和Web服务器上的单核CPU有75个并发用户是安全的估计。 所以你的典型的8GB /四核服务器应该处理大量的用户。 如果你到了这一点,带宽也可能开始在你的负载中发挥作用。
我没有太多与SQL Server的经验,但我会想象应用类似的数字。
我不认为你可以应用任何经验法则,除了知道应用程序如何执行的唯一方法是观察应用程序的执行情况。
一定要做负载testing,目标是项目团队预计负载的1.5-2倍。 如果你成功处理这个负载,那么我会继续增加负载,所以你知道什么是重点。
你的web / db平台是什么?
如果您正在使用IIS和SQL Server,Microsoft将为您的网站进行压力testing/容量testing。 IIS工具
本文似乎是testingSQL Server的良好开端。