<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        SQLSERVER內存分配及常見內存問題(1)簡介

        來源:懂視網 責編:小采 時間:2020-11-09 15:51:59
        文檔

        SQLSERVER內存分配及常見內存問題(1)簡介

        SQLSERVER內存分配及常見內存問題(1)簡介:轉自:http://blog.csdn.net/dba_huangzj/article/details/7527543 一、 問題 : 1、SQL Server 所占用 內存 數量從啟動以后就不斷地增加: 首先,作為成熟的產品, 內存 溢出的機會微乎其微。對此要了解SQL SERVER與windows是如何協調、共
        推薦度:
        導讀SQLSERVER內存分配及常見內存問題(1)簡介:轉自:http://blog.csdn.net/dba_huangzj/article/details/7527543 一、 問題 : 1、SQL Server 所占用 內存 數量從啟動以后就不斷地增加: 首先,作為成熟的產品, 內存 溢出的機會微乎其微。對此要了解SQL SERVER與windows是如何協調、共

        轉自:http://blog.csdn.net/dba_huangzj/article/details/7527543 一、 問題 : 1、SQL Server 所占用 內存 數量從啟動以后就不斷地增加: 首先,作為成熟的產品, 內存 溢出的機會微乎其微。對此要了解SQL SERVER與windows是如何協調、共享 內存 。并且SQL

        轉自:http://blog.csdn.net/dba_huangzj/article/details/7527543

        一、問題:

        1、SQL Server 所占用內存數量從啟動以后就不斷地增加:

        首先,作為成熟的產品,內存溢出的機會微乎其微。對此要了解SQL SERVER與windows是如何協調、共享內存。并且SQL SERVER的內部對內存的管理機制。

        2、在Windows 2003以上版本運行的SQL Server,內存使用量突然急劇下降:

        內存是Sqlserver的生命線。在errorlog中,出現一下情況:

        這類問題往往不是sql server導致的,而是Windows感覺到急迫的內存壓力,迫使sql server 釋放內存。

        3、用戶在做操作時,遇到內存申請失敗:不是用戶想申請多少就有多少

        4、內存壓力導致的性能下降:內存壓力是性能問題最常見的原因之一。

        二、操作系統層面看SQL SERVER 內存分配:

        操作系統不缺內存不代表sql server不缺內存

        專用術語:

        Virtual Address Space(虛擬地址空間):一個應用程序能訪問的最大地址空間。虛擬地址空間存放的數據信息不一定在物理內存中,可能會放在緩存文件中(Paging file)

        Physical Memory(物理內存):要頻繁訪問的數據對象必須能長時間地緩存在物理內存中,才能達到最優化的效率。

        Reserved Memory(保留內存):是虛擬地址空間的一段地址,不是真正物理空間,由某些API提前申請保留。

        Committed Memory(提交內存):將保留內存的頁面正式提交。最終到物理內存中,

        Shared Memory(共享內存):windows提供了在進程和操作系統間共享內存的機制。可理解為在多個進程中可見的內存。

        Private Bytes:某個進程提交的地址空間中,非共享部分。

        Working Set:某個進程的地址空間中,存放在物理內存的那一部分。

        Page Fault(頁面訪問錯誤):分為Soft/Hard ,訪問一個存在虛擬地址空間,但不存在物理內存中的頁面時,就會發生PageFault,如果不是訪問越界而導致的,一種目標頁面存在于硬盤,會產生硬盤讀寫,成為Hard Fault。另一種存在物理內存中,但沒有直接放在這個進程的working set下。需要windows重定向,這種不會導致硬盤操作,成為soft fault,一般soft帶來的性能影響可以忽略,只要關系hard fault。

        System Working Set:Windows系統也有Working set 可以通過性能監視器里的memory:cache bytes來監控,發生在系統內存上的page fault可以用過Mmeory:cache faults/sec看到。

        System Cache(系統高速緩存):提高磁盤I/O速度,可以用過性能監視器:Memory:cache resident bytes監控。

        Non Paged Pool (非頁交換區):包含一定范圍內的系統虛擬地址的內存交換區,可以保證在任何時候都駐留在物理內存中,可以通過Memory:pool Nonpaged Bytes來監控。這一塊緩存可以被所有的經常共享,一個最常見的用途是存放所有對象的指針(Object Handles)

        Paged pool(頁交換區):系統空間中可以調入或調出系統進程工作集(Working set)的虛擬內存區域。可以通過Memory:pool Paged Bytes和Memory:pool paged resident bytes監控。

        Stack(棧):每個線程有兩個棧,一個給內核模式(kernel mode),一個給用戶模式(user mode)。每個棧是一塊內存空間,存放線程運行的過程或函數的調用地址,以及所有參數的值。

        In Process:運行在同一個進程的地址空間里。

        Out of Process:運行在不同的進程地址空間里。

        Memory Leak(內存泄漏):一種是sql server作為進程,不斷地向windows申請內存資源知道整個windows內存耗盡。另一種是sql server 內部,某個sql server組件不斷地申請內存,知道把能申請到的內存耗盡,使得其他組件不能正常運行。前一種情況非常少見。

        32位下windows的地址空間及AWE:

        默認情況下,windows進程有4G虛擬地址空間,2G給核心態(kernel mode),剩下的2G給用戶態(user mode)。這兩部分會嚴格區分。

        任何一個用戶進程的地址空間分布圖:



        方法1:在boot.ini文件中使用/3GB參數,可以在企業版的windows下講核心態降到1G,講用戶態升到3G。


        方法2:使用Address Windowsing Extensions(地址空間擴展,awe),是一種允許32位應用分配64GB物理內存,并把視圖或窗口映射到2G虛擬地址空間的機制。不是所有的內存申請都使用awe,只有先reserve,再commit的內存調用才使用awe。

        Windows層面上的內存使用檢查:

        在檢查sql server內存使用情況時,首先要檢查windows層面的內存使用情況。

        需要檢查的內容有:windows系統自身內存使用數量及內存分布。是否有內存壓力,壓力是否比較嚴重。甚至每個進程的內存使用情況。最后就是是否互相影響。

        可以使用性能監視器實現。

        Windows系統使用情況:

        1、整體使用分析:

        Committed bytes:

        整個windows系統的內存總數,包括物理內存的數據和文件緩存中的數據。

        Commit Limit:

        整個windows系統能夠申請的最大內存數,等于物理內存加上文件緩存的大小。如果Commit Limit≈Committed bytes,說明系統內存接近極限。如果緩存文件不能自動增長,系統將不能提供更多的內存空間。

        Available MBytes:

        現在系統空閑的物理內存,直接反映windows層面有沒有內存壓力。

        Page File:%Usage 和Page File:%Peak Usage:

        反映緩存文件使用量的多少,數據在文件緩存中存得越多,說明物理內存數量和實際需求量的差距越大,性能也越差。

        Pages/sec:

        Hard Page Fault每秒需要從磁盤讀取或寫入的頁面數目。是Memory:pages input/sec + Memory:pages output/sec之和。

        Memory:page faults/sec 是soft page fault 和 hard page fault的總和。但由于soft page fault 對性能影響不大,所以用處沒pages/sec那么有用。pages/sec不能長時間保持在一個比較高的值。

        2、Windows系統自身內存使用情況:

        Memory:cache bytes:

        系統的working set ,也就是系統使用的物理內存數目。

        Memory:System cache resident bytes (system cache):系統告訴緩存消耗的物理內存。

        Memory:Pool paged resident bytes:頁交換區消耗的物理內存。

        Memory:System Driver resident bytes:可調頁的設備驅動程序代碼消耗的物理內存。

        Memory:System Code resident bytes:Ntoskrnl.exe中可調頁代碼消耗的內存。

        3、System pool:Memory :pool Nonpaged bytes(非頁交換區)和Memory:pool paged resident bytes(頁交換區)

        單個Process使用情況:

        Process:%processor Time:目標進程消耗的CPU資源數,包括用戶態和核心態的時間。

        Process:Page Faults/sec 目標進程上發生的PageFaults的數目。

        Process:Handle Count 目標進程handle數據,如果進程內部有對象老是創建不及時回收,就會發生Thread Leak

        Process:Pool Paged Bytes目標進程所使用的Paged Pool的大小。

        Process:Pool Nonpaged Bytes目標進程所使用的Non-Paged pool大小。

        Process:working set 某個進程的地址空間中,存放在物理內存的那部分。

        Process:Virual Bytes:某個進程所申請的虛擬地址空間大小。

        Process:Private bytes:某個進程提交了地址空間中非共享的部分。


        內存永遠是最重要的系統資源。


        SQL SERVER內存使用和Windows之間的關系:

        Sqlserver有兩個重要的內存計數器:Total Server Memory 和Target Server Memory。

        Total Server Memory:自己分配的Buffer pool 內存總和。

        Target Server Memory:理論上能夠使用的最多內存數目。


        SQL Server 內存使用量陡然下降現象:

        原因:

        1、windows在某種情況下申請了太多內核態內存,反而壓縮了用戶態可以使用的物理內存。

        2、有些硬件驅動程序申請了太多內核態內存,也占用太多物理內存。

        3、某些應用突然申請大量物理內存。

        使用下面方法避免SQL SERVER 內存被急劇搶占:


        1、開啟Lock page in memory功能

        只有05/08企業版才有

        2、使用sp_configure 設置sql 的MAX SERVER MEMORY。

        3、升級新版本或者補丁。

        4、升級硬件驅動。


        合理配置SQL SERVER 內存

        兩條原則:

        (1)Windows 系統和其他關鍵應用服務要有足夠的內存,不要在運行過程中因為內存不足,而搶SQL SERVER已經申請的內存。

        (2)在滿足第一點的前提下,SQL SERVER使用盡可能多的內存,并保證內存使用數量的穩定性。

        方法:

        1、使用64位

        2、專用服務器

        3、設置SQL Server Max Server Memory

        4、給SQL Server 啟動賬號賦予Lock Pages in memory權限。

        5、“set working set size”不要使用。


        三、SQL Server 內部獨特的內存管理模式:

        SQL SERVER 開放的內存調節接口:

        1、Min Server Memory (sp_configure):最終由windows確定,不保證SQL Server使用最小物理內存數。

        2、Max Server Memory(sp_configure):數據放在物理內存還是緩沖文件中,由windows決定。

        3、Set Working Set Size (sp_configure):不要使用。

        4、AWE Enalbed(sp_configure):對32位系統有意義。

        5、Lock Pages in memory (企業版會自動開啟):有一定機會確保sql server的物理內存數。

        內存使用分類:

        按用途分類:

        Database Cache:存放數據頁的緩沖區。

        各類Consumer:

        Connection::默認4K

        General:包含語句的編譯、范式化、每個鎖數據結構、事務上下文、表格和索引的元數據等。默認8K。

        Query Plan:默認8k,

        Optimizer:默認8k,

        Utilities:像BCP、Log Manager、Parallel Queries、Backup的特殊操作。默認8k,

        線程內存:進程內的每個線程分配0.5MB內存。存放線程的數據結構和相關信息。默認512K

        第三方代碼申請的內存(COM,XP...)


        按申請方式分類:

        有些內存申請方式是:預留Reserve一大塊內存,然后使用的時候一小塊一小塊commit,而另外一些內存申請直接從地址空間Commit,這種叫Stolen。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        SQLSERVER內存分配及常見內存問題(1)簡介

        SQLSERVER內存分配及常見內存問題(1)簡介:轉自:http://blog.csdn.net/dba_huangzj/article/details/7527543 一、 問題 : 1、SQL Server 所占用 內存 數量從啟動以后就不斷地增加: 首先,作為成熟的產品, 內存 溢出的機會微乎其微。對此要了解SQL SERVER與windows是如何協調、共
        推薦度:
        標簽: 內存 問題 sql
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 无码国产精品久久一区免费 | 亚洲中文字幕无码av在线| h视频在线免费观看| 亚洲乱码日产精品a级毛片久久| 亚洲精品理论电影在线观看| 国产免费毛不卡片| 亚洲精品国产精品国自产网站 | 亚洲第一香蕉视频| 中文字幕在线免费观看| 亚洲国产精品免费在线观看| 91久久成人免费| 一级做a爰全过程免费视频毛片| 四虎免费永久在线播放| 免费人成网上在线观看| 中文字幕无码精品亚洲资源网| 国产99久久久国产精免费| 亚洲大尺度无码无码专区| 日本免费久久久久久久网站| 久久精品国产亚洲AV大全| 一本岛高清v不卡免费一三区| 亚洲人成77777在线观看网| 免费播放春色aⅴ视频| 国产成人无码免费看片软件| 亚洲AV无码久久寂寞少妇| 在线观看H网址免费入口| 亚洲国产欧洲综合997久久| 吃奶摸下高潮60分钟免费视频| 久久国产免费直播| 亚洲精品成人图区| 国产精品免费_区二区三区观看| 日韩在线视频线视频免费网站| 亚洲国产成人一区二区三区| 国产精品69白浆在线观看免费| 免费国产va在线观看| 亚洲av日韩综合一区在线观看| 国产免费久久精品99re丫y| 欧洲亚洲综合一区二区三区| 亚洲人成人网站色www| 在线看片v免费观看视频777| 中美日韩在线网免费毛片视频| 亚洲网站视频在线观看|