SqlServer内存瓶颈分析--SQLServer:Buffer Manager
2011-12-15 12:02
239 查看
SELECT TOP 312 * FROM sys.dm_os_performance_counters where object_name ='SQLServer:Buffer Manager' order by counter_name
1.Buffer cache hit ratio 平均值>=90%
缓冲区是创建数据页面的缓冲页面池,这一般是SQL server内存池中最大的部分。这个计数器应该尽可能高。
低值表示只有少数的请求是在缓冲区,其他请求是在磁盘获取服务
这种情况发生可能是SQL server还在准备状态下,或缓冲区的增长需求超过最大可用内存,因此如果此值比较低,应该考虑为系统增加内存。
2.Checkpoint pages/sec 平均值<30
美好一个检查点操作移到磁盘的页面数量,这些值应该相当低,高值意味着缓冲中更多的页面被标记为脏页面。
脏页面是在缓冲区中被修改的页面。一旦被修改,就标记为脏并在下一个检查点被写回磁盘。
如果这个计数器较高说明系统发生大量的写入操作,可能是I/O问题的征兆。
3.Lazy writes/sec 平均值<20
记录了缓冲区管理器的Lazy write进程每秒写入的缓冲区数量。这个进程会把时间较长的脏页面从缓冲区中删除,将内存释放
数值过高说明I/O有问题或是内存问题。
4.Page life expectancy 平均值>300
页面平均寿命,表示一个不被引用的页面在缓冲池中停留的时间。数值低意味着页面从缓冲区中被移走
降低了缓冲的效率并指出内存压力的可能。
SELECT TOP 312 * FROM sys.dm_os_performance_counters where object_name ='SQLServer:Memory Manager' order by counter_name
1.Memory Grants Pending 平均值=0
值高说明内存短缺,需要将进度挂起等待内存空闲
2. Target Server Memory(KB) 接近物理内存大小
表示SQLServer希望消耗的动态内存总数。
3.Total Server Memory (KB ) 接近于Target Server Memory
当前分配给SQLerver的总内存。 如果低于Target Server Memory
那么可能是SQLserver内存需求很低,服务器最大内存设置的太低
解决方案:
优化应用程序工作负载
为SQLServer分配更多内存
增加系统内存
更新32位处理器为64位
启用3G进程空间
在32位SQLserver中使用4G以上内存
启用3G进程空间:
在Boot.ini文件中增加3GB开关
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT=
"Microsoft Windows Server 2008 Advanced Server"
/fastdetect /3GB
相关文章推荐
- SqlServer内存瓶颈分析--SQLServer:Buffer Manager
- SqlServer内存瓶颈分析--SQLServer:Buffer Manager
- 性能测试瓶颈分析之内存泄漏
- Linux命令----分析内存的瓶颈
- SQL Server 数据页缓冲区的内存瓶颈分析
- Linux命令----分析内存的瓶颈
- SqlServer性能瓶颈分析
- linux性能分析及调优__cpu 性能瓶颈调优可调性能参数 、内存性能瓶颈可调性能参数(操作系统设置swap的目的、在写程序时、如何使自己的内存不被换出swap,常驻物理内存)、磁盘I/O可调性能参
- sqlserver服务器硬件性能瓶颈分析
- sql server 数据页缓冲区的内存瓶颈分析
- 读书笔记-SQL Server 数据页缓冲区的内存瓶颈分析
- SQL Server 数据页缓冲区的内存瓶颈分析
- Linux命令----分析内存的瓶颈
- 读书笔记-SQL Server 数据页缓冲区的内存瓶颈分析
- sar 找出系统瓶颈的利器 目前Linux上最为全面的系统性能分析工具之一 直接 sar -dur 1 30 即可看内存 CPU和IO占用
- linux 分析内存的瓶颈
- UCGUI的动态内存分配的原理深入分析(转)
- 系统瓶颈分析举例
- Mongodb源码分析--内存文件映射(MMAP)