我有一个带有两个实例的 2016 标准版服务器。该服务器有 8 个逻辑处理器和 40GB 内存(它是 hyper-v 上的测试服务器,因此规格不高!)并且没有任何现有工作负载可供分析。
关于 MAXDOP 和 TempDb 文件配置的建议在多实例服务器上是否仍然适用?
我的想法是拆分服务器资源并根据这些资源应用配置。
例如每个实例都会有
- 16GB 最大内存
- 最大输出 4
- 4 个临时数据库文件
我有一个带有两个实例的 2016 标准版服务器。该服务器有 8 个逻辑处理器和 40GB 内存(它是 hyper-v 上的测试服务器,因此规格不高!)并且没有任何现有工作负载可供分析。
关于 MAXDOP 和 TempDb 文件配置的建议在多实例服务器上是否仍然适用?
我的想法是拆分服务器资源并根据这些资源应用配置。
例如每个实例都会有
如果您真的需要限制每个实例的资源,那么资源调控器是您最好的选择,尽管如果这是您的主要关注点,我会避免堆叠多个实例。
如果拆分资源不是一个大问题,我会将总内存配置为不超过 36GB,因此每个实例 16GB 就可以了。我仍然会为每个实例配置 8 个 tempdb 文件,并且可能会将 max dop 设置为 6 左右,以针对工作负载进行测试。
这可以确保实例或操作系统都无法获得所需的内存,但通过将 maxdop 配置为高于一半的内核,它将允许进程使用超过 4 个内核(如果可用),同时仍然不允许单个进程使用支配整个机器。
我仍然会为实例分配 8 个 tempdb 文件,因为没有适当的东西来提供硬限制,sql server 仍然能够访问所有 8 个内核,并且可能同时生成 8 个 tempdb 请求。
我要验证的另一件事是,如果它在 sql server 标准版上运行,那么无论内核数量如何,您的 VM 配置不超过 4 个套接字。Sql server 会将 cpu 使用限制为 4 个插槽,如果您使用单核 cpus,您可能会发现两个实例都试图共享前 4 个 CPU,而其他 4 个则闲置。