我们的 SQL Server 机器当前出现故障。
看来,一旦与我们的 SQL Server 位于同一台 (VMWare) 主机上的服务器启动维护程序,
SQL Server 就会膨胀,几乎失去所有内存。
我接下来的期望是 SQL Server 在维护窗口之后恢复其内存。
然而这永远不会发生,SQL Server 将一直处于内存底部,直到我们强制重新启动。
上图可以看到内存膨胀(黑线)在我们的维护时段内开始和结束。
但消耗的内存并没有恢复到预期水平。
第二天早上,我们被迫重新启动,此时内存又恢复了。
这次重新启动必须通过 Vsphere 进行,因为机器完全没有响应,我们无法登录。
我们的应对措施是在所有生产机器上设置内存预留。
但是对于我们的 STG 和 DEV 机器,我们的基础设施中根本没有足够的内存来预留所有内存。
有什么方法可以解决我们的问题而不会使我们的 VMware 环境负担过重?
SQL Server 无法在不重新启动的情况下恢复丢失的内存的原因是什么?
我曾考虑为每个 SQL Server 预留 4GB 内存,以确保始终有最低工作内存可用。
但是,如果没有合理的理由进行此预留,我没理由提出此要求。