我正在尝试调优 SQL Server。Brent Ozar 的性能调优视频他说 PerfMon 的 Paging File:%Usage 应该为零或非常接近零。我的机器上的平均指标约为 1.341%
该机器有 18 GB 的 RAM,SQL Server 已关闭,提交费用总计为 1GB,但 PerfMon 指标不为 0。任务管理器的性能表明 PF 使用率为 1.23GB。
我应该怎么做才能更好地调整盒子?
答案1
你真的应该调整表现,不是为了神奇的数字。
如果可以实现,零页面文件(交换)利用率是一个不错的目标,但如果您有足够的 RAM 满足 SQL 服务器的所有需求,并且没有遇到性能问题,那么您可能不需要“调整”任何东西。将一些永远不会被请求的数据放在页面文件中不会影响性能。
如果你想专注于数字,那么我会更加专注于Memory\Available Bytes
(确保始终有健康的数量可用,其中“健康”由你的用例定义)和Memory\Pages/sec
(应该为零或接近于零,这表明交换中的内容不会被主动调用到RAM中)。
请记住,现代操作系统通常会从 RAM 中清除从未请求过的数据,在系统空闲时将其预先放置在分页文件(交换空间)中,以便有更多的 RAM 可用,并且系统在实际需要 RAM 时不必承受将数据移动到磁盘的性能损失。忙碌的。
举例来说,请考虑我的一个(unix)数据库服务器的以下统计数据:
CPU: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle
Mem: 710M Active, 730M Inact, 554M Wired, 72M Cache, 315M Buf, 862M Free
Swap: 2048M Total, 910M Used, 1138M Free, 44% Inuse
- 我有“大量”的可用 RAM(800MB,并且不需要更多)。
- 我正在使用大量的交换空间
(因为这个服务器上有一个程序存在内存泄漏,大多已换出) - 系统性能非常出色,我的所有用户都很满意。
因此此时我没有采取任何调整措施(尽管当交换利用率达到 50% 时我确实会终止并重新启动存在内存泄漏的程序)。
答案2
任务管理器是错误的。它实际上显示的是系统提交总数。(2008 服务器中的措辞已更改以反映这一点。)
至于 1.341% 的页面文件使用率,在我看来,这个数字非常接近于零,但我不是 DBA。即使 Windows 有足够的内存可用,进行一些分页也是“正常”的 - 如果您希望纠正这一点,也许您应该考虑在面向 DBA 的网站/论坛上寻求帮助。看起来 dba.stackexchange.com 和 sqlservercentral.com 上有一些关于这个问题的讨论
我建议先进行一些基准测试,看看这 1.3% 是否真的影响了服务器的性能,然后再花大力气消除它。如果它能带来明显的区别,我会感到惊讶——我认为你的性能调优工作可能最好花在其他地方,但就像我说的,我不是 DBA,所以我可能是错的。