我有一个关于重新设置 MAX SQL 内存设置的一般问题-
对于我们当前具有以下规格的 CPU,服务器团队将操作系统内存从 400GB 提高到 1TB:
- 英特尔® 至强® 处理器 E5-4640 v2 - 每个处理器有 4 个插槽 10 核,启用了 HT,因此总共有 80 个逻辑处理器 4 个 NUMA 节点
查看英特尔网站上的规格,这里支持的最大内存似乎是 768。
那么这在 SQL 空间方面究竟意味着什么?即使操作系统有 1 TB,是否应该根据 1 TB 或 768 GB 设置 MAX 内存设置?我们可以在尝试提高 MAX 内存设置时看到 SQL 的问题,比如说超过 850,当我们将其降低到 400 时又恢复正常。
增加 SQL MAX 内存时的问题 - 根据超时设置,运行超过 3 秒的查询的应用程序超时。
测试了这几次,看起来是一样的。需要了解原因
感谢您对此的投入。
最大内存设置是 SQL 将使用多少 RAM。它通常不会使用超过最大内存集。(根据 Shanky 的评论,该规则的例外情况见下文):引用 内存管理架构指南
现在,如果您的硬件有 1 TB,但操作系统中只能识别 768Gb,将最大内存设置为高于 768Gb 将允许 SQL 使用所有可用 RAM(操作系统检测到的所有 RAM),这可能会导致潜在问题操作系统,因为它必须对 SQL 施加内存压力才能收回它。
根据操作系统看到的 RAM 大小设置 SQL MaxMemory 设置,它应该很好。(为操作系统留出至少 4 Gb)
Ps 不要将 min memory 设置为与 max memory 相同的值。将其设置得较低,因为当存在内存压力时,SQL 不会在最小值下释放 RAM,这可能导致操作系统崩溃。