国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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
主站蜘蛛池模板: 亚洲va欧美 | 亚洲男同在线观看 | 欧美在线xx| 天堂一区二区三区精品 | 国产日产欧美一区二区三区 | 国产精品欧美亚洲韩国日本不卡 | 91在线一区二区 | 亚洲伦理 | 国产精品亚洲专区在线观看 | 欧美精品亚洲精品日韩专区va | 欧美精品国产综合久久 | 天堂一区二区三区精品 | 欧美大陆日韩 | 在线欧美精品二区三区 | 亚洲色图欧美另类 | 久久福利资源网站免费看 | 伊人色播 | 一区一精品 | 青青国产成人久久91网 | 极品久久 | 国产在线视频在线观看 | 久久精品a国产一级 | 日本一区二区不卡在线 | 欧美成人h精品网站 | 国产成人精品久久亚洲高清不卡 | 99久久精品免费国产一区二区三区 | 99久久免费国产精品特黄 | 国产一区二区三区久久 | 日韩 亚洲 欧美 中文 高清 | 国产成人在线精品 | 免费观看性欧美大片 | 亚洲国产成人久久综合野外 | 欧美变态人zozo禽交 | 欧美一欧美一区二三区性 | 国产产一区二区三区久久毛片国语 | 久久久久久久岛国免费播放 | 麻豆porn| 欧美人与禽zozzo性伦交 | 男女全黄一级带免费 | 欧美国产日韩一区二区三区 | 国产精品一区二区av |