共同投影同时数据库查询
-
29-09-2019 - |
题
我对人们如何为能力计划进行计算数据库负载进行了一些思考。我没有将其放在服务器故障上,因为问题与仅测量应用程序而不是定义基础架构有关。在这种情况下,担心这一点是别人的工作!
我知道这里有很多变量,但我对其他人如何获得粗略的数量级感兴趣。在创建任何特定设计之前,这只是项目生命周期的早期,因此在此阶段没有很多信息。
我从基础架构的人们提出的问题是“多少同时用户”。让我们不要辩论仅寻求这个数字的理由。在这种情况下,这就是所要求的!
这是网络前端,SQL Server后端,具有相当固定的,易于量化的受众。要以一种非常粗糙的方式将其确定为实际的同时请求,就像我看到的那样,它归结为越来越颗粒状的测量单位:
- 总受众
- 同时会议
- 同时要求
- 同时查询
这不会说明诸如Web应用程序缓存,部分页面请求,记录卷等诸如因素,并且需要一些创意许可来定义每个用户的请求频率以及DB命中和执行时间的频率,但这似乎是一个合理的起点。我还意识到需要扩展峰值负载,但这是可以在需要时可以同时插入的其他内容。
诚然,这是非常基本的,我敢肯定那里有更多的全面指导。如果有人可以分享他们的练习方法或将我指向其他可能使该过程不那么临时的资源,那就太好了!
解决方案
我会尝试的,但显然不知道细节,很难提供一个精确的建议。
首先,基础架构的人可能从许可角度提出了这个问题(SQL Server可以是每个用户或每个CPU的许可)
现在回到您的问题。如果您可以预测/解决此数字,那么“总受众”很重要。当所有用户一次登录数据库时,这可以为您提供最坏的情况(例如,当每个人登录时上午9点)。
如果您存储会话信息,则每个用户可能至少有2个连接(1个会话 + 1个主DB)。但是,通过连接池(取决于您如何连接到数据库)可以(有时明显)降低此数字。使用最坏的情况-50系统连接 + 2 *用户数。
同时请求/查询取决于应用程序的性质。需要更多细节。更多同时的请求(到您的前端)不一定会转化为后端的更多请求。
说了所有这些 - 为了成本目的,您需要专注于更大的情况。
SQL Server许可证(如果我的内存适合我)将花费〜128K AUD(Dual Xeon)。热/温暖的待机?成本加倍。
磁盘存储 - 您需要多少存储?磁盘相对便宜,但是如果您要使用SAN,则成本可能会引人注目。另外 - 从性能的角度来看,磁盘越好。