Stackoverflowuser Asked: 2016-11-19 03:50:31 +0800 CST2016-11-19 03:50:31 +0800 CST 2016-11-19 03:50:31 +0800 CST 解释页面预期寿命指标 772 我需要关于解释我的服务器的 PLE 指标的建议: 是 SQL Server 2008 R2 有 4 个 NUMA 节点 配备 128 GB 内存 每日完整备份从凌晨 02:00 开始,大约需要 1 小时才能完成。 过去 24 小时的各种指标如下: 我的问题是: PLE 的警报阈值应该是多少? 图表上的波谷和波峰可能表示什么? 谢谢 sql-server sql-server-2008-r2 2 个回答 Voted Cody Konior 2016-11-19T04:09:04+08:002016-11-19T04:09:04+08:00 阈值没有简单的数字。这与大多数 SQL Server 计数器相同。不过你的系统很忙。 峰值等可能是大型查询。 要深入挖掘,您需要了解:将 PLE 解释为“我每 X 秒从磁盘读取一次缓冲存储器,这听起来很多吗?” 它并不完全准确(缓冲区 < 总内存大小),但这是一个很好的经验法则。 每 23 分钟 128GB 是否太多了?这是 93MB/s 的读取速度,这对于繁忙的 SAN 来说已经足够了。但是,如果您有直接连接的存储,那么它可能不是。 多低才算太低?如果您的 PLE 为 0,则您的读取速度快于内存所能容纳的速度。如果它是 60,那么您每分钟读取 128GB。同样,这听起来很正确。没有多少硬件可以维持这一点。 拇指指南是 300。除了在您的系统上,300 意味着每分钟 25GB 的读取或 400MB/s。除了直接连接的 SSD 之外,也太多了。 您的最终门槛是:用户体验痛苦的地方。这可能接近您的持续存储速度的极限(再次记住 SQL 不仅仅是读取)。 没有人关注备份期间的阈值,因为数据库非常大,它们经常超出内存并且需要多次循环缓冲区。同样,除非用户因此而感到痛苦,否则它并不重要。(如果是的话,你会增加内存或降低备份速度)。 监控应用程序如何确定阈值?他们通常很愚蠢,只会选择 300 个或 1000 个。有些人在一天的不同时间进行采样,然后应用软糖因素并与过去的结果进行比较——如果您按每周或每月的计划进行备份,这会变得非常复杂;毕竟他们应该与哪个过去的基线进行比较? Best Answer stacylaray 2016-11-20T17:02:35+08:002016-11-20T17:02:35+08:00 Page Life Expectancy - 指示页面在没有引用的情况下将保留在缓冲池中的秒数。 Buffer Cache Hit Ratio - 指示无需从磁盘读取即可在缓冲区缓存中找到的页面的百分比。 https://msdn.microsoft.com/en-us/library/ms189628.aspx 仅仅因为 PLE 低并不意味着您正在从磁盘读取。你可以是,也可以不是。最好检查一下才能确定。 根据 Paul Randall 的说法,您需要查看所有 NUMA 节点的 Buffer Node:Page Life Expectancy 计数器,否则您无法准确了解缓冲池内存压力,因此可能会丢失或对性能问题反应过度。http://www.sqlskills.com/blogs/paul/page-life-expectancy-isnt-what-you-think/ 您不应将服务器性能基于一个计数器,而应基于一组计数器。 SQL Server 的 Page Life Expectancy 会不会太高? 除了 PLE 之外,我还想看看 lazywrites 是否存在内部内存压力。
阈值没有简单的数字。这与大多数 SQL Server 计数器相同。不过你的系统很忙。
峰值等可能是大型查询。
要深入挖掘,您需要了解:将 PLE 解释为“我每 X 秒从磁盘读取一次缓冲存储器,这听起来很多吗?” 它并不完全准确(缓冲区 < 总内存大小),但这是一个很好的经验法则。
每 23 分钟 128GB 是否太多了?这是 93MB/s 的读取速度,这对于繁忙的 SAN 来说已经足够了。但是,如果您有直接连接的存储,那么它可能不是。
多低才算太低?如果您的 PLE 为 0,则您的读取速度快于内存所能容纳的速度。如果它是 60,那么您每分钟读取 128GB。同样,这听起来很正确。没有多少硬件可以维持这一点。
拇指指南是 300。除了在您的系统上,300 意味着每分钟 25GB 的读取或 400MB/s。除了直接连接的 SSD 之外,也太多了。
您的最终门槛是:用户体验痛苦的地方。这可能接近您的持续存储速度的极限(再次记住 SQL 不仅仅是读取)。
没有人关注备份期间的阈值,因为数据库非常大,它们经常超出内存并且需要多次循环缓冲区。同样,除非用户因此而感到痛苦,否则它并不重要。(如果是的话,你会增加内存或降低备份速度)。
监控应用程序如何确定阈值?他们通常很愚蠢,只会选择 300 个或 1000 个。有些人在一天的不同时间进行采样,然后应用软糖因素并与过去的结果进行比较——如果您按每周或每月的计划进行备份,这会变得非常复杂;毕竟他们应该与哪个过去的基线进行比较?
Page Life Expectancy - 指示页面在没有引用的情况下将保留在缓冲池中的秒数。
Buffer Cache Hit Ratio - 指示无需从磁盘读取即可在缓冲区缓存中找到的页面的百分比。 https://msdn.microsoft.com/en-us/library/ms189628.aspx
仅仅因为 PLE 低并不意味着您正在从磁盘读取。你可以是,也可以不是。最好检查一下才能确定。
根据 Paul Randall 的说法,您需要查看所有 NUMA 节点的 Buffer Node:Page Life Expectancy 计数器,否则您无法准确了解缓冲池内存压力,因此可能会丢失或对性能问题反应过度。http://www.sqlskills.com/blogs/paul/page-life-expectancy-isnt-what-you-think/
您不应将服务器性能基于一个计数器,而应基于一组计数器。
SQL Server 的 Page Life Expectancy 会不会太高?
除了 PLE 之外,我还想看看 lazywrites 是否存在内部内存压力。