SqlServer运维——最大服务器内存

1. 关于最大服务器内存

可以,MSSM数据库连接-->右键:服务器属性 进行查看和配置

1.对CPU的使用分配,可以选择SQL server使用或者不使用某些CPU线程

  • 默认是勾选以下设置,一般不需要做什么设置
    • 自动设置所有处理器的处理关联掩码(P)
    • 自动设置所有处理器的I/O关联掩码(I)

2.内存配置,通过对操作系统内存的总体应用,从而优化数据库性能

  • 最大服务器内存:SQL server的Buffer Pool最大使用的内存量。默认值2147483647MB。

    • 我本机安装后创建的数据库实例,没有做任何修改,默认值就是:2147483647MB。
    • 当配置为0或者超过当前系统最大内存值时,使用系统最大内存量。当设置小于当前系统的最大内存值,并且大于最小内存值时,SQL server实例到达设置的最大内存量后,将不会继续扩大内存的使用量。
    • Sqlserver对系统内存的管理原则是:按需分配,且贪婪(用完不还)。它不会自动释放内存,因此执行结果集大的sql语句时,数据取出后,会一直占用内存,直到占满机器内存(并不会撑满,还是有个最大限制,比机器内存稍小),在重启服务前,sqlserver不会释放该内存,也没有任何办法可人为释放
  • 最小服务器内存:为SQL server实例预留能够使用的内存,当服务器内存出现压力,数据库收缩持有内存量,到达配置值将不在收缩。

2. 数据库的最大服务器内存

  • MSSM数据库连接-->右键:服务器属性--> 内存:最大服务器内存:设置位物理内存减去4G
    • 金蝶云星空官方建议最大内存配置为物理内存-4GB(可按物理内存数量,预留4-8GB内存给数据库服务器所在的操作系统使用)

      • 例如:
      • 如果数据库服务器物理内存是32G,最大服务器内存可设置为28G=28*1024MB
      • 如果数据库服务器物理内存是128G,最大服务器内存可设置为120G=120*1024MB
    • 一般情形:数据库服务器和服务端是分开部署的,纯数据库服务器的最大服务内存,可以使用物理内存的75%,比如说物理内存:100G,则数据库的最大服务器内存:75G

      • 注意1:上述是有前提条件的:数据库服务器仅做数据库服务器使用,该服务器上没有其他非系统应用。简而言之:服务器专门供数据库使用,不要将其他服务(例如IIS,中间层应用服务等)安装在同一台机器上
      • 注意2:数据库中设置的最大服务器内存,并不是值SQLServer在该服务器上最大就使用这么多内存,

        最大服务器内存选项仅限制 SQL Server 缓冲池的大小。 最大服务器内存选项不限制 SQL Server 为分配其他组件(例如,扩展存储过程、COM 对象、非共享 DLL 和 EXE)而保留的剩余未预留内存区域。

      • 注意3:若是不小心将最大服务器内存设置为非常小的值,会导致

        将“最大服务器内存(MB)”设置为最小值甚至可能导致无法启动 SQL Server。 如果在更改此选项后无法启动 SQL Server,请使用 -f 启动选项来启动它,并将“最大服务器内存(MB)”重置为其之前的值。 有关详细信息,请参阅数据库引擎服务启动选项

3. 其他说明

数据库服务器配置及软件版本

  • 金蝶云星空8.2
  • SQL Server2016 64位
  • 操作系统:WindowsServer2019,64位,32核,80G内存

4. 参考

posted @ 2024-12-04 18:34  shanzm  阅读(67)  评论(0编辑  收藏  举报
TOP