《SQL調(diào)優(yōu)日志--內(nèi)存問題排查》要點:
本文介紹了SQL調(diào)優(yōu)日志--內(nèi)存問題排查,希望對您有用。如果有疑問,可以聯(lián)系我們。
許多系統(tǒng)的性能問題,是由內(nèi)存導(dǎo)致的.內(nèi)存不夠會導(dǎo)致頁面頻繁換入換出,IO隊列高,進而影響數(shù)據(jù)庫整體性能.
內(nèi)存對數(shù)據(jù)庫性能非常重要.那么我當呈現(xiàn)問題的時候,我們怎么排查性能問題呢?
主要查看2個部門.頁生命周期 Page Life Expectancy,和 lazy writer /sec.
頁生命周期 的參考值在很久很久以前,很多同學(xué)可能看到過,建議值是300s.但是這是基于32位操作系統(tǒng),最大只能使用4GB內(nèi)存給出的. Jonathan Kehayias and Ted Krueger 的書A Guide for the Accidental DBA 有給出一個當下的參考值:Buffer Pool / 4 GB * 300 . 當然這值只是一個參考值.如果你發(fā)現(xiàn)系統(tǒng)的頁生命周期長期低于某個值,或者經(jīng)常出現(xiàn)劇烈的波動,那闡明內(nèi)存可能存在問題.
lazy writer /sec 如果長期大于1 ,就必要關(guān)注了.
注意:如果你的系統(tǒng)使用了NUMA.可能會遇到lazy writer /sec 很高,但 Page Life Expectancy異常穩(wěn)定的情況.這個問題不太常見,暫不詳述.
判斷內(nèi)存存在問題后,我們必要查看內(nèi)存的分布.
1.總內(nèi)存,使用中,可用內(nèi)存
2.SQL SERVER使用的內(nèi)存
有的同學(xué)可能會遇到,服務(wù)器內(nèi)存使用快滿了,但是從上面圖中看到的內(nèi)存使用很少.內(nèi)存被誰用掉了,是內(nèi)存泄漏嗎?當然不是.原因是SQL SERVER 內(nèi)存使用可以分為緩沖池和非緩沖池內(nèi)存.在開啟了 鎖定內(nèi)存頁 選項后,在任務(wù)管理器中只能看到非緩沖池內(nèi)存部門. 那怎么查看另外一部門緩沖池的內(nèi)存怎么呢.通過Total server memory 來查看.通過SQL SERVER :Memory Manager Total server memory 來查看
3.非緩沖池內(nèi)存
SELECT M.type,SUM(M.virtual_memory_reserved_kb) AS VirtualMemoryReservedKB,SUM(M.virtual_memory_committed_kb) AS VirtualMemortCommitedKB,SUM(M.shared_memory_committed_kb) AS SharedMemroyCommittedKB,SUM(M.shared_memory_reserved_kb) AS SharedMemroyReservedKB,SUM(M.multi_pages_kb) AS MultiPagesKB,SUM(M.single_pages_kb) AS SinglePagesKB,SUM(M.multi_pages_kb)+SUM(M.single_pages_kb) AS TotalPagesKBFROM sys.dm_os_memory_clerks MGROUP BY M.typeORDER BY TotalPagesKB DESC
已經(jīng)依照內(nèi)存使用排序,找到使用內(nèi)存最多的部分.分析使用的原因,并解決.
某客戶的客戶系統(tǒng)使用緩慢,通過上面的排除辦法依次排查,最后找到是非緩沖池部分的 MEMORYCLERK_SQLOPTIMIZER占用內(nèi)存太多造成
sp_configure N'show advanced options',1GOreconfigureGOsp_configure N'optimize for ad hoc workloads',1GOsp_configure N'show advanced options',1GOreconfigureGO
開啟上面的選項后,內(nèi)存仍然沒有自動釋放.重啟SQL SERVER 服務(wù),釋放掉已經(jīng)使用掉的內(nèi)存.
https://simplesqlserver.com/2013/08/19/fixing-page-life-expectancy-ple/ 詳細講授PLE
《SQL調(diào)優(yōu)日志--內(nèi)存問題排查》是否對您有啟發(fā),歡迎查看更多與《SQL調(diào)優(yōu)日志--內(nèi)存問題排查》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/7837.html