【TUNE_ORACLE】Oracle資料庫與HugePages(一)HugePages概念和優勢
說明
相關文章連結:
Oracle資料庫與HugePages(一)HugePages概念和優勢: http://blog.itpub.net/69992972/viewspace-2763625/
Oracle資料庫與HugePages(二)HugePages配置和限制: http://blog.itpub.net/69992972/viewspace-2764357/
Oracle資料庫與HugePages(三)HugePages常見問題和解決辦法: http://blog.itpub.net/69992972/viewspace-2764597/
Oracle資料庫與HugePages(四)如何禁用透明大頁: http://blog.itpub.net/69992972/viewspace-2764784/
前言
Oracle資料庫使用系統全域性區(SGA)來管理可以共享的一些資源:比如shared pool中儲存了共享的SQL語句及執行計劃,buffer pool中儲存了資料塊。對這些資源的訪問,其實就是Oracle使用OS的API來訪問記憶體資源的過程。記憶體操作通常意義上都是很快的,這時候Oracle資料庫可以很正常的工作。
但是:
1. 如果SGA內的某一部分被swap到硬碟上,那麼再次訪問它,就需要花非常多的時間。
2. 如果OS本身的記憶體非常的大,那麼管理/訪問到我們需要的記憶體的過程就需要更長時間。
在這些情況下,我們往往會碰到諸如latch/mutex/library cache lock/row cache lock的問題。Linux下的HugePages 可以解決由以上兩種問題引發的效能波動。
下面具體談談HugePages。
什麼是HugePages
HugePages(記憶體大頁)是整合到2.6版及更高版本Linux核心中的一項功能。它允許較大的頁面來管理記憶體,以替代較小的4KB頁面大小。
HugePages優點
如果生產環境有較大的RAM和SGA,那麼HugePages對於在Linux上提高Oracle資料庫效能至關重要。如果資料庫SGA很大(例如超過8GB),則需要配置HugePages。 但是具體多大就一定需要使用HugePage?這並沒有定論,有些文件曾經提到12G以上就推薦開啟,但強烈建議在測試環境進行了充分的測試之後,再決定是否在生產環境應用HugePage( 本人是從8G這個最小值開始測試)。SGA的大小很重要,因為HugePages是依靠SGA計算出來的。
HugePages的優點是:
1. 每個page較大使得page數量減少:預設頁面大小為4K,而HugeTLB最小大小為2M( 範圍在2M-256M,具體取決於核心版本和硬體架構)。這意味著系統將需要少處理512倍的頁面數量。
2. 減少Page Table遍歷:由於HugePage比常規大小的頁面覆蓋的連續虛擬地址範圍更大,因此使用HugePages的每個TLB條目獲得TLB命中率比常規頁面高。這減少了遍歷頁表以從虛擬地址獲取實體地址的次數。
3. 減少記憶體操作的開銷:在虛擬記憶體系統(任何主流的OS)上,每個記憶體操作實際上是兩個抽象記憶體操作。使用HugePages,由於要處理的頁面數較少,因此可以避免 訪問Page Table中可能出現的瓶頸。
4. 記憶體使用量更少:從Oracle資料庫的角度來看,使用HugePages,與常規大小的頁面相比,Linux核心將使用更少的記憶體來建立頁表來維護SGA地址範圍的虛擬到物理對映。這使更多的記憶體可用於程式專用計算或PGA使用。
5. 不會使用Swap: 我們必須儘可能避免在所有Linux 作業系統上進行swap操作。HugePages是不可交換的(而常規頁面是可交換的)。因此,沒有頁面替換機制的開銷。HugePages通常是固定不變的。
6. 沒有kswapd參與操作:如果要分頁的區域很大(比如50GB記憶體需要1300萬個Page Table項),導致kswapd將變得非常繁忙,並且將佔用大量CPU資源。當使用HugePages時,kswapd可以不參與管理它們。
注:
TLB:轉換後備緩衝區(TLB)是CPU中包含頁表部分的緩衝區(或快取)。這是一個固定大小的緩衝區,用於更快地進行虛擬地址轉換。
HugeTLB:這是TLB中的一個條目,它指向HugePage。HugePages是透過HugeTLB條目實現的,即,我們可以說HugePage是由“ HugeTLB頁面條目”處理的。所以 “HugeTLB”一詞也與HugePage相同。
Kswapd:是linux中用於頁面回收的核心執行緒。負責在記憶體不足時回收頁面。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69992972/viewspace-2763625/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【TUNE_ORACLE】Oracle資料庫與HugePages(二)HugePages配置和限制Oracle資料庫
- 【TUNE_ORACLE】Oracle資料庫與HugePages(三)HugePages常見問題和解決辦法Oracle資料庫
- 【TUNE_ORACLE】Oracle資料庫與HugePages(四)如何禁用透明大頁Oracle資料庫
- HugePages on LinuxLinux
- HugePages詳解
- [20191211]hugepages pagetables.txt
- 【TUNE_ORACLE】Oracle Hint之概念與用法Oracle
- [20191202]關於oracle例項是否使用hugepages問題.txtOracle
- 【ASK_ORACLE】Oracle Data Guard(四)快照備庫的概念和優勢Oracle
- 【ASK_ORACLE】Oracle Data Guard(二)物理備庫的概念和優勢Oracle
- 【ASK_ORACLE】Oracle Data Guard(三)邏輯備庫的概念和優勢Oracle
- [201804012]關於hugepages 3.txt
- [20191204]關於oracle例項是否使用hugepages問題2.txtOracle
- [20191129]關於hugepages的問題.txt
- 「Oracle」Oracle 資料庫基本概念Oracle資料庫
- 「Oracle」Oracle資料庫基本概念Oracle資料庫
- Oracle資料庫-----資料庫的基本概念Oracle資料庫
- [20221125]設定hugepages遇到的問題.txt
- [20191202]關於hugepages相關問題.txt
- How to disable transparent hugepages (THP) on Red Hat Enterprise Linux 7Linux
- 【TUNE_ORACLE】Oracle檢查點(一)檢查點(Checkpoint)概念介紹Oracle
- NoSQL資料庫概念與NoSQL資料庫家族SQL資料庫
- 資料庫概論 (一)資料庫概念資料庫
- oracle資料庫調優描述Oracle資料庫
- oracle資料庫與oracle例項Oracle資料庫
- 資料庫學習與複習筆記--資料庫概念和不同類資料庫CRUD操作(1)資料庫筆記
- 掌握Oracle資料庫效能調優方法Oracle資料庫
- 【TUNE_ORACLE】Oracle索引設計思想(一)索引片和匹配列概述Oracle索引
- Oracle、NoSQL和NewSQL 資料庫技術對比(一)OracleSQL資料庫
- MySQL資料庫的優勢是什麼?MySql資料庫
- 資料庫的概念資料庫
- Oracle匯出資料庫與還原Oracle資料庫
- 【資料庫】雲資料庫rds是什麼意思?有什麼優勢?資料庫
- MySQL 資料庫與 SQL 優化MySql資料庫優化
- 使用python進行Oracle資料庫效能趨勢分析PythonOracle資料庫
- 【TUNE_ORACLE】Oracle Hint之常用Hint功能概述(一)Oracle
- 崑崙分散式資料庫技術優勢分散式資料庫
- MySQL資料庫的優勢和特點是什麼?MySQL學習MySql資料庫