是否有任何启发式方法来定义典型应用程序的服务器要求?从内部开发到少数用户,这是我们第一次部署互联网应用程序。在内部,我们只是根据需要进行部署、监控和采取行动,但由于预算紧张且必须进行远程部署,我必须进行更准确的估算。
我对参数估计有以下输入来源:
经过测试,我得到: - 流量 - SQL 请求的数量
从项目管理中,我得到了预期的总用户数和同时连接的用户数。
我可以对这些参数应用经验法则吗?
是否有任何启发式方法来定义典型应用程序的服务器要求?从内部开发到少数用户,这是我们第一次部署互联网应用程序。在内部,我们只是根据需要进行部署、监控和采取行动,但由于预算紧张且必须进行远程部署,我必须进行更准确的估算。
我对参数估计有以下输入来源:
经过测试,我得到: - 流量 - SQL 请求的数量
从项目管理中,我得到了预期的总用户数和同时连接的用户数。
我可以对这些参数应用经验法则吗?
没有一个简单的数学公式可以确定您将面临的负载。您的负载可能会根据以下情况发生巨大变化:
关于如何进行容量规划有一些思想流派,但它比一些公式要复杂得多。
您必须考虑大量变量,因此没有简单的方法可以做到这一点。您需要考虑的几件事(除了 Brent Ozar 的出色笔记):
对于新应用程序,最好的部署方式是购买几台大大低于预算的可扩展服务器。尽可能缓慢地推出您的应用程序(即,您自己并与一些可信赖的客户一起进行测试,然后逐步向公众推出测试版)。
在此过程中,请密切关注您可以掌握的每个性能指标,以确定您的瓶颈所在。把你之前省下的钱花在打开这些瓶颈上。
这种方法不会让你在一场大风暴中启动,但它会避免以后出现很多麻烦。
没有银弹;并且根据您的应用程序的性质,您可能会看到更少用户的更多负载。例如,站点上的大量 Ajax 会大大增加 Web 和 DB 服务器的负载。
我听说 Web 服务器上每 1GB RAM 和单个核心 CPU 约 75 个并发用户是一个安全的估计。所以你典型的 8GB/四核服务器应该可以处理很多用户。如果您达到了这一点,带宽也可能开始在您的负载中发挥作用。
我对 SQL Server 没有太多经验,但我想类似的数字也适用。
我不认为你可以应用任何经验法则,除了知道你的应用程序将如何执行的唯一方法是观察你的应用程序的执行情况。
确保以项目团队预期负载的 1.5-2 倍为目标进行负载测试。如果您成功处理此负载,那么我将继续增加负载,以便您知道断点是什么。
您的网络/数据库平台是什么?
如果您使用 IIS 和 SQL Server,Microsoft 会制作一些工具来对您的网站进行压力测试/容量测试。IIS 工具
本文似乎是测试 SQL Server 的良好开端。