SQL调优日志—内存问题排查入门篇

发表于:2016-7-19 10:11

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:owen zeng    来源:51Testing软件测试网采编

#
SQL
分享:
  概述
  很多系统的性能问题,是由内存导致的。内存不够会导致页面频繁换入换出,IO队列高,进而影响数据库整体性能。
  排查
  内存对数据库性能非常重要。那么我当出现问题的时候,我们怎么排查性能问题呢?
  存在问题
  主要查看2个部分。页生命周期 Page Life Expectancy,和  lazy writer /sec.
  页生命周期 的参考值在很久很久以前,很多同学可能看到过,建议值是300s。但是这是基于32位操作系统,最大只能使用4GB内存给出的。 Jonathan Kehayias and Ted Krueger 的书A Guide for the Accidental DBA 有给出一个当下的参考值:Buffer Pool / 4 GB * 300 。 当然这值只是一个参考值。如果你发现系统的页生命周期长期低于某个值,或者经常出现剧烈的波动,那说明内存可能存在问题。
  lazy writer /sec 如果长期大于1 ,就需要关注了。
  注意:如果你的系统使用了NUMA。可能会遇到lazy writer /sec 很高,但  Page Life Expectancy非常稳定的情况。这个问题不太常见,暂不详述。
  内存分布
  判断内存存在问题后,我们需要查看内存的分布。
  1.总内存,使用中,可用内存
  2.SQL SERVER使用的内存
  注意
  有的同学可能会遇到,服务器内存使用快满了,但是从上面图中看到的内存使用很少。内存被谁用掉了,是内存泄漏吗?当然不是。原因是SQL SERVER 内存使用可以分为缓冲池和非缓冲池内存。在开启了 锁定内存页 选项后,在任务管理器中只能看到非缓冲池内存部分。
  3.缓冲池
  这种情况下,怎么查看缓冲池的内存怎么呢?通过SQL SERVER :Memory Manager Total server memory 来查看
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号