版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、內(nèi)存相關(guān)概念以下均是針對window 32位系統(tǒng)環(huán)境下,64位的不在下面描述情況下。用戶模式和內(nèi)核模式(user mode& kernel mode)為了防止用戶程序訪問并篡改操作系統(tǒng)的關(guān)鍵部分,windows使用了2種處理器存取模式:用戶模式和內(nèi)核模式。顧名思義,內(nèi)核模式是給操作系統(tǒng)核心代碼和基本驅(qū)動用的,用戶模式給用戶應(yīng)用程序。在內(nèi)核模式下程序可以訪問所有的內(nèi)存和硬件,并使用所有的處理器指令。操作系統(tǒng)程序比用戶程序有更高的權(quán)限,使得系統(tǒng)設(shè)計者可以確保用戶程序不會意外的破壞系統(tǒng)的穩(wěn)定性。物理內(nèi)存(physical memory)即實際購買的內(nèi)存的大小,內(nèi)存條上的容量。cpu的地址線可以直接進
2、行尋址的內(nèi)存空間大小,在32位操作系統(tǒng)平臺上,cpu的最大尋址空間為4gb,也即可以支持最大4g的物理內(nèi)存空間。在32位操作系統(tǒng)上即便你購買的是64g內(nèi)存,也只能說擁有4gb的物理內(nèi)存空間虛擬內(nèi)存(virtual memory)如果計算機缺少運行程序或操作所需的隨機存儲內(nèi)存,則windows使用虛擬內(nèi)存進行補償。虛擬內(nèi)存將計算機的ram和硬盤上的臨時空間組合在一起,當ram不足時,虛擬內(nèi)存將數(shù)據(jù)從ram移動到稱為“分頁文件”的空間中,將數(shù)據(jù)移入與移出分頁文件可以釋放ram,以便完成工作。虛擬地址空間(virtual address space,簡稱vas)在windows系統(tǒng)中,任何一個進程都
3、被賦予了其自己的虛擬地址空間,該虛擬地址空間覆蓋了一個相當大的范圍,對于32位系統(tǒng)的虛擬地址空間范圍從0x000000000xffffffff(4gb)。windows采用分頁機制,將4g的地址空間分成固定大小的頁,并且將虛擬地址中的每一頁映射到物理內(nèi)存中。在缺省的情況下虛擬地址空間中的低2g,即0x00000000x7ffffffff是用戶地址空間,而4g虛擬地址空間中的高2g即0x80000000xffffffff是分配給內(nèi)核模式。實際上用戶進程擁有的虛擬地址空間只有2gb。虛擬內(nèi)存管理器(virtual memory manager)虛擬內(nèi)存管理器負責(zé)虛擬地址空間和物理內(nèi)存的地址映射,如
4、果缺乏足夠內(nèi)存,則需要使用到page file文件來保持臨時數(shù)據(jù)也即虛擬內(nèi)存,同時使用page table entry(pte)來跟蹤每一個地址映射關(guān)系。到這里為止,64g的內(nèi)存有60g都無法訪問,豈不是浪費了,那怎么辦?/3gb和increaseuserva通過/3gb的方式,可以減少內(nèi)核模式占用地址空間,從而增加sql server進程的地址空間。默認情況下,用戶模式和內(nèi)核模式各自占用2g尋址空間,3g選項可以使得sql server獲得多1g的虛擬地址空間。/3gb開關(guān)用法:在boot.ini文件中修改其中的段落即可:或者使用bootcfg命令在windows server 2008中可
5、以運行bcdedit命令,加以調(diào)整。物理地址擴展pae(physical address extension)物理地址擴展(pae)是32位intel cpu的一種擴展,這樣可以在32位系統(tǒng)上支持最大64g的物理內(nèi)存,即4gb以上物理內(nèi)存允許將更多物理內(nèi)存映射為應(yīng)用程序的虛擬地址空間。使用方式,在boot.ini文件中修改其中的段落即可:在windows server 2008操作系統(tǒng)下也可以通過以下命令執(zhí)行/pae和/3gb兩者的目標是不同的,又可以在同樣的地方進行配置,所以難免產(chǎn)生疑惑,簡單的來說就是如果計算機可用物理內(nèi)存超過16gb,就需要確保boot.ini文件中沒有/3gb參數(shù)即可。
6、地址窗口化擴展插件awe(address windowing extensions)awe是windows的內(nèi)存管理功能的一組擴展,它能夠使應(yīng)用程序使用的內(nèi)存量超過通過標準32位尋址可使用的23g內(nèi)存。awe允許應(yīng)用程序獲取物理內(nèi)存,然后將非分頁內(nèi)存的視圖映射到32位地址空間。雖然32位地址空間限制為4gb,但是非分頁內(nèi)存卻可以遠遠大于4gb。在sql server 2008下,可以登錄sql server management studio,找到相應(yīng)的數(shù)據(jù)庫實例,點擊右鍵選擇屬性,然后在“選擇頁”中點擊內(nèi)存,在服務(wù)器內(nèi)存選項中,復(fù)選使用awe分配內(nèi)存即可。sqlserver的內(nèi)存管理sql
7、server 主要的內(nèi)存組件是緩沖池。其中高速數(shù)據(jù)緩沖區(qū)用以把數(shù)據(jù)從磁盤加載到內(nèi)存中,實現(xiàn)數(shù)據(jù)的高速讀寫。而過程高速緩沖區(qū)則用來存儲相應(yīng)的執(zhí)行計劃,減少編譯過程,也是高速緩沖倉庫的主要構(gòu)成部分。用戶倉庫高速緩沖是用戶倉庫的主要組成本部分。對象倉庫則僅僅是內(nèi)存塊組成的內(nèi)存池,不需要進行l(wèi)ru或成本計算例如sql server網(wǎng)絡(luò)接口(sni)利用對象存儲倉庫作為網(wǎng)絡(luò)緩沖池。sql server 內(nèi)存管理器由一個三層的層次結(jié)構(gòu)組成。該層次結(jié)構(gòu)的底層為內(nèi)存節(jié)點。下一層由內(nèi)存 clerk、內(nèi)存緩存和內(nèi)存池組成。最后一層由內(nèi)存對象組成。這些對象通常用于在 sql server 實例中分配內(nèi)存。內(nèi)存節(jié)點(
8、sys.dm_os_memory_nodes)提供低級分配器的界面和實現(xiàn)。在numa中內(nèi)存節(jié)點和cpu節(jié)點可以對應(yīng)起來的,在 sql server 中,只有內(nèi)存 clerk 可訪問內(nèi)存節(jié)點。內(nèi)存 clerk(sys.dm_os_memory_clerks) 訪問內(nèi)存節(jié)點界面以分配內(nèi)存。內(nèi)存節(jié)點還會跟蹤 clerk 分配的內(nèi)存以進行診斷。分配大量內(nèi)存的每個組件,都必須使用 clerk 界面來創(chuàng)建其自己的內(nèi)存 clerk 并分配其全部內(nèi)存。各組件會在 sql server 啟動時創(chuàng)建其相應(yīng)的 clerk。內(nèi)存對象(sys.dm_os_memory_objects)是指多個堆。它們所提供的分配的粒度
9、比內(nèi)存 clerk 所提供的分配的粒度更精細。sql server 組件使用內(nèi)存對象,而不使用內(nèi)存 clerk。內(nèi)存對象使用內(nèi)存 clerk 的頁分配器接口來分配頁。內(nèi)存對象不使用虛擬內(nèi)存接口或共享內(nèi)存接口。根據(jù)分配模式的不同,組件可以創(chuàng)建不同的內(nèi)存對象類型來分配任意大小的區(qū)域。sql server的緩沖池只提供8kb的內(nèi)存塊;大于8kb的大內(nèi)存塊需求是被單獨管理的,且一般是直接從操作系統(tǒng)或者說是從緩沖池外獲取到的,此外只有數(shù)據(jù)高速緩沖頁面才能使用awe內(nèi)存,并且需要單獨跟蹤。sqlserver的內(nèi)存方面的系統(tǒng)視圖sys.dm_os_memory_cache_clock_hands 返回特定緩
10、存時鐘的每個指針的狀態(tài)。提供給用戶關(guān)于每個緩存存儲區(qū)和用戶存儲區(qū)的時鐘指針信息指針是否正在轉(zhuǎn)動、圈數(shù)、被移除的條目數(shù)量等。此視圖對于查找當前時鐘指針的狀態(tài)以及時鐘指針的移動歷史非常有用。sys.dm_os_memory_cache_counters 返回緩存運行狀況的快照。提供有關(guān)已分配的緩存條目、緩存條目的使用情況以及內(nèi)存源的運行時信息。提供給用戶每個存儲區(qū)的總結(jié)信息使用的內(nèi)存數(shù)量、條目數(shù)、正在使用的條目數(shù)。用戶可以使用該視圖找到緩存的內(nèi)存使用,以及一個緩存中的條目數(shù)量。sys.dm_os_memory_cache_hash_tables 針對 sql server 實例中的每個活動緩存返回
11、一行。即用戶關(guān)于緩存存儲區(qū)的散列表信息最大、最小、平均桶長等。此視圖對于查找緩存存儲區(qū)中每個緩存表的每個散列桶的條目分布非常有用。sys.dm_os_memory_cache_entries 返回有關(guān)緩存中所有條目的信息。使用此視圖可對緩存條目進行跟蹤,直至它們的關(guān)聯(lián)對象。還可使用此視圖獲取有關(guān)緩存條目的統(tǒng)計信息。sys.dm_os_sys_info返回一組有關(guān)計算機和有關(guān) sql server 可用資源及其已占用資源的有用雜項信息。sys.dm_os_sys_memory 從操作系統(tǒng)返回內(nèi)存信息。sql server 受操作系統(tǒng)級別的外部內(nèi)存條件和基礎(chǔ)硬件物理限制的約束并對其有所響應(yīng)。確定整
12、個系統(tǒng)的狀態(tài)是評估 sql server 內(nèi)存使用量的重要方面。sys.dm_os_virtual_address_dump則返回有關(guān)調(diào)用進程的虛擬地址空間中的頁范圍的信息。dbcc memorystatus命令提供了sql server的當前內(nèi)存狀態(tài)的快照,也可以作為我們分析內(nèi)存瓶頸的重要依據(jù)。內(nèi)存壓力對于sql server占用內(nèi)存資源的監(jiān)控主要集中在頁面吞吐能力、頁面錯誤和可用內(nèi)存上上,對虛擬內(nèi)存的監(jiān)控,則重點在于分頁文件的使用率上。下面提供了幾種對象、計數(shù)器和相應(yīng)的閾值及描述。sql server提供的sys.dm_os_performance_counters計數(shù)器視圖,主要對緩沖區(qū)
13、管理器和內(nèi)存管理器的一些計數(shù)器進行監(jiān)控,比如頁面的生存周期、檢查點、惰性寫入器和緩沖命中率等指標。以下為緩沖池內(nèi)數(shù)據(jù)庫緩沖池中各個數(shù)據(jù)庫的分布情況。以下為返回當前數(shù)據(jù)庫中每個對象的緩存頁計數(shù),加以適當?shù)男薷奈覀円部梢缘玫綌?shù)據(jù)緩沖池中對象數(shù)據(jù)頁和索引頁的分布情況。以下為緩沖池中前十位消耗內(nèi)存最大的內(nèi)存組件。我們需要重點關(guān)注的內(nèi)存組件為以下:sys.dm_exec_cached_plans針對 sql server 為了加快查詢執(zhí)行而緩存的每個查詢計劃返回一行??梢杂么藙討B(tài)管理視圖來查找緩存的查詢計劃、緩存的查詢文本、緩存計劃占用的內(nèi)存量,以及重新使用緩存計劃的計數(shù)。同樣我們還可以和sys.dm_
14、exec_sql_text聯(lián)合起來進一步加工獲取到緩沖最大的前10條sql。cachestore_sqlcpsql執(zhí)行計劃(臨時緩存計劃、自動參數(shù)化計劃和預(yù)編譯計劃)cachestore_objcp對象計劃(存儲過程、函數(shù)、觸發(fā)器等執(zhí)行計劃)cachestore_phdrbound trees是在sql server中代數(shù)化的結(jié)構(gòu)過程,被用于視圖、約束和默認值。cachestore_xpro是預(yù)定義的系統(tǒng)存儲過程,這里僅包含實現(xiàn)過程的函數(shù)名稱和dll名稱。以下sql用來確認在緩沖區(qū)外進行分配了內(nèi)存的內(nèi)部組件(即通過多頁分配器請求內(nèi)存),借以了解內(nèi)存是否存在壓力。sys.dm_exec_cach
15、ed_plans針對 sql server 為了加快查詢執(zhí)行而緩存的每個查詢計劃返回一行??梢杂么藙討B(tài)管理視圖來查找緩存的查詢計劃、緩存的查詢文本、緩存計劃占用的內(nèi)存量,以及重新使用緩存計劃的計數(shù)。同樣我們還可以和sys.dm_exec_sql_text聯(lián)合起來進一步加工獲取到緩沖最大的前10條sql。i/o性能診斷sql server性能非常依賴于i/o子系統(tǒng)。除非你的數(shù)據(jù)庫適合物理內(nèi)存,sql server經(jīng)常地會有數(shù)據(jù)庫頁面進出緩存池。這樣就發(fā)生了實質(zhì)的i/o流量。同樣,在事務(wù)被明確的提交前,日志記錄需要寫入磁盤。sql server為各種目的可以使用tempdb,例如存儲中間結(jié)果,排序
16、,保持行的版本或其他。所以好的i/o子系統(tǒng)對于sql server性能非常重要。i/o的性能取決于以下一些方面:磁盤類型包括ide、sata、scsi、sas、fibre channel drive等類型,其中ide、sata一般用在個人電腦上。同時為了在數(shù)據(jù)安全、數(shù)據(jù)性能和數(shù)據(jù)容量之間做平衡,又發(fā)展出了raid,raid是一種把多塊獨立的磁盤按不同的方式組合起來形成一個硬盤組,從而提供比單個硬盤更高的存儲性能和提高數(shù)據(jù)備份技術(shù)。raid主要包括raid0raid7等幾個規(guī)范,常用的raid類型為raid0、raid1、raid5,raid10。此外根據(jù)連接方式不同還可以分為:direct a
17、ttached storage(das),storage area networks(san),fibre channel storage area networks,iscsi storage area networks。吞吐量和iops指標吞吐量主要取決于陣列的架構(gòu),光纖通道的大小以及硬盤的個數(shù)。陣列的架構(gòu)與每個陣列不同,但也都存在內(nèi)部帶寬,不過在一般情況下,內(nèi)部帶寬都設(shè)計的很充足,不是瓶頸所在。其次是光纖通道對數(shù)據(jù)流量的影響,為了達到1gb/s的數(shù)據(jù)流量要求,我們必須使用1gb*8=8gb的光纖卡,也可以用4塊2gb的光纖卡。其實是硬盤的個數(shù),可以參考以下指標計算方式,假設(shè)為了滿足1gb
18、的數(shù)據(jù)流量要求,所必須的磁盤個數(shù)。iops(input/output operations per second),即每秒進行讀寫(i/o)操作的次數(shù),多用于數(shù)據(jù)庫等場合,衡量隨機訪問的性能。決定iops的主要取決于陣列的算法、cache命中率以及磁盤個數(shù)。cache命中率取決于數(shù)據(jù)的分布、cache size的大小、數(shù)據(jù)的訪問規(guī)則,以及cache的算法。磁盤的限制,每個磁盤能處理的iops是有限制的,通常情況下每個磁盤的最大iops是確定的,比如ide和sata硬盤的iops大致在100以內(nèi)(我們可以使用hd tune工具進行iops測試),而且iops的測試結(jié)果與測試方式(例如隨機讀寫和順
19、序讀寫、讀和寫的比例、傳輸數(shù)據(jù)庫尺寸的大小、磁盤的數(shù)量)有很大關(guān)系,盡管如此磁盤的iops指標還是對我們評估磁盤的壓力和是否能夠滿足系統(tǒng)的性能需求有著一定的指導(dǎo)意義。假設(shè)現(xiàn)在的業(yè)務(wù)需求是10000 iops,120塊scsi磁盤,那么在不同的cache命中率、不同的讀寫比例情況下,不同的raid級別對每塊磁盤的iops需求是多少呢?raid 0 每個磁盤的i/o計算= (讀+寫) /磁盤個數(shù)raid 1 每個磁盤的i/o計算= 讀+(2*寫)/2raid 5 每個磁盤的i/o計算= 讀+(4*寫)/磁盤個數(shù)raid 10 每個磁盤的i/o計算= 讀+(2*寫)/磁盤個數(shù)此外當吞吐率超過85%時,會出現(xiàn)i/o瓶頸,因此單個磁盤iops計算規(guī)則為(10000*(1-cache命中率)*讀比例)+10000*寫比例*raid系數(shù))/磁盤數(shù)/0.85即每塊磁盤的iops大約在200左右即可滿足raid0、raid5、raid10的要求。此外,關(guān)于sql server的部署一般規(guī)劃和建議如下:操作系統(tǒng)和sql server單獨構(gòu)建在raid1的磁盤鏡像上;出于高速和安全的原則,日志文件需要單獨安裝在raid1/raid10上;tempdb文件最好放在ra
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)康復(fù)治療(康復(fù)評定技術(shù))試題及答案
- 2025年中職(汽車維修)崗位技能達標測試卷
- 2025年高職第二學(xué)年(安全工程技術(shù))職業(yè)衛(wèi)生工程試題及答案
- 2025年高職畜牧獸醫(yī)(畜禽養(yǎng)殖技術(shù))試題及答案
- 2025年高職生物(生物應(yīng)用技能進階)試題及答案
- 2025年大學(xué)水利水電工程(水利工程設(shè)計)試題及答案
- 2025年大學(xué)大三(國際貿(mào)易實訓(xùn))外貿(mào)跟單實操綜合測試試題及答案
- 2025年中職道路與橋梁工程施工(路基施工技術(shù))試題及答案
- 2025年中職機械類(機械技術(shù)創(chuàng)新)試題及答案
- 2025年大學(xué)(材料成型及控制工程)粉末冶金工藝測試題及答案
- 初中歷史區(qū)域國別研究教學(xué)與跨學(xué)科整合課題報告教學(xué)研究課題報告
- 檔案工作責(zé)任追責(zé)制度
- 2024-2025學(xué)年重慶市南開中學(xué)七年級(上)期末道德與法治試卷(含答案)
- 【語文】廣東省深圳市寶安區(qū)寶城小學(xué)二年級上冊期末復(fù)習(xí)試題(含答案)
- 2025西藏日喀則市薩迦縣招聘專職網(wǎng)格員11人筆試備考題庫及答案解析
- 節(jié)能工程監(jiān)理質(zhì)量評估報告范本
- 攝影取景角度課件
- 2025寧夏黃河農(nóng)村商業(yè)銀行科技人員社會招聘考試筆試參考題庫及答案解析
- 統(tǒng)編版語文一年級上冊無紙化考評-趣味樂考 玩轉(zhuǎn)語文 課件
- 2025年北京市海淀區(qū)中小學(xué)教師招聘筆試參考試題及答案解析
- 全科接診流程訓(xùn)練
評論
0/150
提交評論