这将更多是一般方法问题,而不是过于技术性:
如果我们需要在 CPU 内存磁盘或 CPU 方面扩展 SQL 服务器,我的一个应用程序会主动联系我,因为他们计划将容量增加一倍。
从当前卷中,我捕获了显示 CPU/内存和磁盘运行没有问题的内容。
但是,如果数量增加而最终可能需要增加容量,我该如何自信地衡量一切会发生什么变化?
需要您的专业知识,我如何才能积极主动,我可以衡量什么来做出决定,至少接近数量增长的预期?
是的,我确实有 SQL 服务器监控,它存储了过去 15 天的性能数据。大多数数据来自性能计数器和 DMV。
更新 - 在我更新时添加更多数据 - 每天平均 800 个事务/秒和一天内 400 个批处理请求/秒,然后在一天内稳定 40% 的 CPU 使用率,包括高峰日。读/写的磁盘响应都远低于 5 毫秒。PLE全天超过10K。
非常感谢任何有关如何解决此问题的帮助。我知道这个问题的答案很广泛,但是一些很棒的想法不仅可以帮助我这个服务器,而且将来也会出现类似的东西,谢谢!
正如其他人所说,没有什么神奇的公式可以告诉您数据库服务器将如何响应突然的“将音量增加一倍于当前的音量”(顺便说一下,究竟是什么音量)。
有两件事可以帮助你获得一个大致的想法(显然你都没有):
显示服务器负载、数据量和应用程序工作负载(并发连接、用户会话、注册用户、每日订单或任何对您的情况有意义的)之间的相关性的历史(数月内)数据。“[P] 过去 15 天的绩效数据”完全没用。
配置与您的生产非常相似的性能测试环境。在当今时代,在云提供商之一上构建虚拟化测试环境并运行一周的成本与您为意外性能问题导致的生产中断所付出的代价相比是微不足道的。性能燃尽测试应该是发布过程的一部分。
如果你明天就开始准备这两个,半年之后你就能在一定程度上自信地回答你自己的问题。
只需对您的应用程序执行压力测试,例如:
如果应用程序是基于 Web 的应用程序,您可以考虑使用支持HTTP协议的免费负载测试工具。
如果您能够收集在应用程序正常使用期间正在执行的 SQL 查询,您可以使用支持ODBC或JDBC协议的负载测试工具以增加负载的方式重播它们。
在负载测试执行期间监视SQL 服务器性能计数器并将增加的负载与这些计数器相关联。它应该给你一个概述当负载加倍时会发生什么