我有以下套件:
Windows Server 2008r2
Microsoft SQL Server 2008r2
双四核 Xeon
52GB 内存
服务器上的内存使用率目前为 98%,这很好,SQL 服务器很乐意获取它所需的内存。我想知道的是,我该如何判断它实际上需要多少内存?我怎么知道什么时候需要添加更多内存,或者我是否可以减少一些内存?我已将内存使用率降低到 40GB,我的磁盘写入/读取目前为:
超过 5 分钟的数据库活动
磁盘读取/秒:平均:59
磁盘写入/秒:平均:95
这是要检查的正确计数器吗?我很高兴数据库服务器有 40GB 的 Ram,但我想知道它是否还有太多的内存 - 这是一个虚拟环境,所以我可以在其他地方使用这些资源。'
谢谢
答案1
我怎么知道什么时候需要添加更多或者是否可以拿走一些?
检查它在性能计数器上发布的统计数据(页面在内存中停留的时间、它从磁盘重新加载内容的频率)并检查它在 MDF 文件上等待读取 IO 的时间的统计数据 - 就这么简单。
超过 5 分钟的数据库活动 磁盘读取/秒:平均:59 磁盘写入/秒:平均:95
衡量任何东西都毫无用处,就像衡量我今天午餐吃的食物的价格一样。
获取秒/IO 数,这很重要。当此数字增加时,您的 IO 子系统就会超载。但是,您必须小心,因为出于显而易见的原因,RAM 对于缓存事务日志写入毫无用处。
我很高兴为数据库服务器保留 40GB 的 Ram,但我想知道它是否仍然太多 - 这是一个虚拟环境,所以我可以在其他地方使用这些资源。'
降低到 16gb,使用常识,然后在 IO 开始变慢时增加。遗憾的是,您的 IO 可能也是虚拟化的,因此您无法正确使用磁盘?另外,我们不知道您的数据库有多大(这是一个重要的数字)以及您的热集有多大(永久使用的数据)。
我会拥有:* 16gb,监视计数器,根据需要进行调整。