下面是更多关于如何解释来自我的性能计数器的数据的更多信息,用于 2 个具有不同应用程序结构但工作量相似的数据库服务器
服务器 A 共有 1 TB RAM,数据库约为 10 TB,通过 4 个 NUMA 节点配置具有以下指标
服务器 B 共有 1 TB RAM,数据库约为 16 TB,通过 4 个 NUMA 节点配置具有以下指标
由于数据库的大小很大,服务器 B 分配了更多的 MAX 内存。是的,我知道 MAX 内存设置可以改进一点点,但如果我能更好地理解上述数字来了解被盗和外来内存,我会计划稍后。
这些数字告诉我什么,因为我看到一台服务器的外来内存似乎约为 50 GB,而在另一台服务器上被盗为 150 GB,而外来似乎只有 5 GB。
对不起,我在这里缺乏知识,但有人可以指导更好的方法来解释这些数据以及人们可以想到在这里调整哪些可能的变化?
被盗内存是指用于缓冲区以外的其他内容的内存,如果它没有用于其他内容,则可以用于缓冲区。看看为什么 SQL Server 2012 仍然需要“Stolen Server Memory (KB)”。为了尽量减少被盗内存的数量,需要优化查询,使它们使用尽可能少的内存。例如,如果有不必要的排序,这可能会使用一些内存。如果它是一个报告服务器,我猜你只需要考虑一些被盗的内存。
外部内存是指远程 NUMA 节点上的工作内存。请参阅它的工作原理:SQL Server(NUMA 本地、外部和离开内存块)。当内存是外来的时,访问它需要更长的时间,并且影响取决于您的系统和组件的速度。为了最小化,您需要确保正确设置了 NUMA 配置和最大并行度。