nat*_*nat 4 windows-server-2008 memory sql-server-2008 server-setup
我们有一个大约 40GB 的中等大小的 SQL 数据库,并且即将将它移动到一个带有 server 2008 r2 x64 的新盒子
一个昂贵的承包商刚刚进来说我们需要 72gb 的内存,这样整个数据库就可以存在于内存中,我猜..,我觉得这很荒谬,但也许我错过了一些东西。
我想知道是否有一个“经验法则”可以暗示在 SQL 实例上使用大量 ram 。
编辑: DB 在任何时间都有多达 150 人点击它,用于运行预订系统。非常讨厌的旧数据库模式,许多表中的列数量惊人,大量的半无意义索引。.net 访问一些 sprocs,但也使用原始 sql 查询,以及 VisualDataFlex 使用的任何内容。
谢谢
纳特
没有好的经验法则。
额外 RAM 的有用性在很大程度上取决于您的数据库的设计方式以及查询模式或您的用户。举一个极端的例子,如果您总共有 1 TB 的数据、良好的索引和 1000 个仅在 1 个特定行之后的并发用户(从 dbo.BigTable 中选择 *,其中 pkey_id = 42),您可以使用很少的 RAM . 更多 RAM 的影响还取决于您的磁盘存储子系统的速度。如果您拥有超快的存储(一个好的SAN、好的DASD 或 SSD),您可能不会注意到服务器需要读取数据时的延迟。
理想情况下,您希望数据库在白天可能需要的所有数据都缓存在 RAM 中。这有时称为“热数据”或“热页”(在 SQL Server 中,数据以称为“页”的单位进行组织)。热点数据的一个例子可能是今天或昨天的订单,运送这些订单的工人将需要这些数据。冷数据的一个例子可能是两年前的订单,但系统中仍然存在,以便 CSR 可以查找旧订单。
设计良好的 OLTP 系统总共有 40 GB 的数据(相对于数据文件加起来高达 40 GB),热数据可能只有 10 GB、5 GB、1 GB 甚至更少. 在过去,只购买 64 GB 的 RAM 和 8 GB(甚至更少)之间的差异是天文数字,正确购买 RAM 的数量值得花很多时间。
您总是需要一点额外的 RAM 用于“开销”,例如操作系统、病毒扫描程序、RDP 会话。您还希望将数据库增长考虑在内。
要记住的另一件事是 RAM 以“块”形式出现。您无法在 48 GB 和 49 GB 之间做出决定,您必须升级,可能是从 48 GB 到 64 GB。块的大小取决于当前销售的 RAM 技术以及您的内存有多少个通道。旧服务器对内存进行了一次更改,然后服务器开始有两个,现在大多数强大的服务器都有三个内存通道。所以,你不能只加一根棍子,你需要一次加两根三根。
如果您有一个设计糟糕且索引错误的数据库,正如您所说的那样,SQL 最终将读取大量数据,而使用设计更好的数据库则不必读取这些数据。将这些数据全部放在 RAM 中并不意味着它不会全部读取。这只是意味着它读取 RAM 中的所有数据的速度比数据位于磁盘存储上的速度快。这不一定能解决你所有的问题;从 RAM 读取数据速度很快,但仍然需要有限的时间,您仍然可能遇到阻塞和死锁问题,从而导致性能问题。
另一件事是,当人们在使用去年数据的系统上运行大型报告时,更多的 RAM 会有所帮助。人们一直将 OLTP 系统视为报告系统。这可能并不罕见,尤其是对于随意的 SQL 查询。
您可以在开发人员和测试人员身上花费时间(和金钱)来改进数据库设计,并对前端进行必要的更改。
对 hp.com 的快速访问表明,我可以以大约 9,000 美元的价格获得一个(非常)精简的服务器,它具有 96 GB 的 RAM。
(这不到每 GB 100 美元,不考虑服务器中的任何其他部件。电源或处理器等部件。像我这样的老人记得 RAM 每兆字节 5,000 美元。使用 M。)
花费 9,000 美元用于开发和测试时间有多快?(以我所在地区的公司费率计算,这几乎无法让您整整一个月。)这是否足以修复数据库中的所有内容?如果更改后的代码中的错误漏掉了怎么办?
服务器中断以添加 RAM 可能需要一个小时,几乎任何人都可以完成这项工作。迁移到全新的服务器可能需要几天的准备工作和一个小时的停机时间,您需要有经验的人(可能是 DBA)。
添加 RAM 不太可能导致任何错误。迁移到新服务器不太可能导致任何难以发现的问题。(通常,东西要么有效,要么明显坏了。通常是“哎呀,密码错误”或“哎呀,忘了复制链接的服务器”,从来都不是“嘿,这个计算突然不能正常工作了”。)
因此,假设我们要将所有内容都保存在 RAM 中并且我们有一个 40 GB 的数据库,我们需要一些开销空间。我会考虑使用 48 GB 左右的服务器。另外,我们想要一些增长空间。假设从这里增长了 25%,即 12 GB,最多可达 60 GB。下一个级别(我实际上可以购买)是 64 GB。如果您的顾问推荐三通道服务器,下一级可能是 72 GB。所以,他的建议并不一定是古怪的。也许你不需要那么多的内核/插槽,这可能会让你回到双通道服务器(反正会更便宜),你可以少买一点内存。
域名注册地址:
简而言之,我很少这样做,RAM 便宜而时间昂贵。如果您没有资金、时间或意愿来修复数据库,或者您不想冒险向应用程序添加错误,那么将 RAM 用于解决问题是很难质疑的。另一个好的举措是提高磁盘存储系统的响应能力(IOW,添加更多主轴、更多 RPM 或使用 SSD)。
我会问为什么顾问不希望你花一年时间和 100,000 美元让他重写系统。
归档时间: |
|
查看次数: |
7396 次 |
最近记录: |