AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 173013
Accepted
Raidenlee
Raidenlee
Asked: 2017-05-09 11:31:35 +0800 CST2017-05-09 11:31:35 +0800 CST 2017-05-09 11:31:35 +0800 CST

SQL:最大服务器内存分配

  • 772

我在云服务器上有三个 SQL 数据库实例:A、B 和 C,服务器安装的物理内存 (RAM) 为 32GB。A(数据+日志文件)的大小为 44GB,B(数据+日志文件)为 41GB。我们忽略 C,因为它没有数据库并且最大内存设置为 500MB。

两个实例 A 和 B 的内存都设置为默认大小:2147483647 MB​​。尽管我们没有遇到任何问题,但这绝对是不切实际的。

经过一些研究,基于数据库活动,我决定将实例 A 的内存分配设置为 20GB,将 B 设置为 10GB。总共是系统中最大物理内存的 30/32。下面显示了实际的内存消耗。恐怕如果我设置最大内存它会减慢响应时间。此配置在为此类数据库设置 SQL Max Server 内存时是否最佳?在应用之前如何进行模拟?

在此处输入图像描述

sql-server
  • 4 4 个回答
  • 2358 Views

4 个回答

  • Voted
  1. Kin Shah
    2017-05-09T12:52:16+08:002017-05-09T12:52:16+08:00

    Jonathan的一般建议(来自 SQLSkills)

    为操作系统预留 1 GB RAM,从 4-16 GB 安装的每 4 GB RAM 预留 1 GB,然后为 16 GB RAM 以上安装的每 8 GB RAM 预留 1 GB。

    您可以使用 powershell dbatoolsTest-DbaMaxMemory为您计算。dbatools 必须set-DbaMaxMemory为您在所有服务器上设置最大内存。

    我会先Test-DbaMaxMemory检查建议,一旦你感到舒服,使用 set 在所有服务器上设置它。

    • 4
  2. Wes
    2017-05-09T11:38:24+08:002017-05-09T11:38:24+08:00

    您将看到可以缓存的数据更少,因此,某些查询将具有分离的性能。RAM 的默认值在某种程度上意味着 SQL Server 将“尽其所能”使用。一旦它上升,它在服务重新启动之前不会恢复,因为它会保留所有 RAM(因为它会在上面缓存数据。)

    这是我最喜欢的用于确定服务器真正需要多少 RAM 的资源。我唯一的问题是它并没有真正考虑到更小的基于 VM 的机器,只是假设你可以在服务器上抛出 128gb+。

    https://www.brentozar.com/archive/2014/05/much-memory-sql-server-need/

    一般的经验法则是 10% 或 8GB 专用于操作系统/辅助,其余专用于 SQL Server(通过 MAX Ram 设置。)(10% 或 8GB,以较大者为准。)

    • 3
  3. Best Answer
    BradC
    2017-05-09T11:40:26+08:002017-05-09T11:40:26+08:00

    在我看来,你没有为操作系统留下足够的空间:在32GB 的系统上,我可能会留下 4GB 左右。请记住,本地登录、SQL 作业和 SSIS 包以及第 3 方备份软件等都使用为 SQL 引擎本身分配的空间之外的内存。如果我知道有内存占用 SSIS 包定期运行,我会为操作系统留出更多内存。

    如何在 3 个实例之间拆分剩余部分取决于您。通过动态更改这些没有(严重的)影响风险,它们甚至不需要重新启动 SQL 即可生效。

    不要担心您计划的最大尺寸与您在图中看到的尺寸有细微差别。SQL 是一头猪,它会使用尽可能多的内存。如果降低最大值,它将不得不释放一些内存,但它只是放弃了一部分本地数据缓存。对于某些查询,它可能需要稍早返回磁盘,但我怀疑您会注意到差异。

    编辑:在评论中进行了一些讨论后,似乎不需要重新启动 SQL,即使 MaxMem 降低到当前使用的数量以下。

    • 2
  4. Henrico Bekker
    2017-05-09T11:44:36+08:002017-05-09T11:44:36+08:00

    您是否进行过分析以查看每个实例需要多少实际内存?避免使用任务管理器来确定 SQL 内存要求,有适当的性能指标可用于 SQL 内存使用情况。

    • 0

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve