欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Linux下如何配值HugePages。-創(chuàng)新互聯(lián)

Linux下如何配值HugePages。,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創(chuàng)新互聯(lián)是一家專業(yè)提供碭山企業(yè)網(wǎng)站建設,專注與網(wǎng)站建設、成都網(wǎng)站建設html5、小程序制作等業(yè)務。10年已為碭山眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。

HugePages是通過使用大頁內(nèi)存來取代傳統(tǒng)的4kb內(nèi)存頁面,使得管理虛擬地址數(shù)變少,加快了從虛擬地址到物理地址的映射以及通過摒棄內(nèi)存頁面的換入換出以提高內(nèi)存的整體性能。尤其是對于8GB以上的內(nèi)存以及較大的Oracle SGA size,建議配值并使用HugePage特性。

基于x86_64 Linux下來描述如何配值 HugePages。

1、Hugepage的引入

操作系統(tǒng)對于數(shù)據(jù)的存取直接從物理內(nèi)存要比從磁盤讀寫數(shù)據(jù)要快的多,但是物理內(nèi)存是有限的,這樣就引出了物理內(nèi)存與虛擬內(nèi)存的概念。虛擬內(nèi)存就是為了滿足物理內(nèi)存的不足而提出的策略,它是利用磁盤空間虛擬出的一塊邏輯內(nèi)存,這部分磁盤空間Windows下稱之為虛擬內(nèi)存,Linux下被稱為交換空間(Swap Space)。

對于這個大內(nèi)存的管理(物理內(nèi)存+虛擬內(nèi)存),大多數(shù)操作系統(tǒng)采用了分段或分頁的方式進行管理。分段是粗粒度的管理方式,而分頁則是細粒度管理方式,分頁方式可以避免內(nèi)存空間的浪費。相應地,也就存在內(nèi)存的物理地址與虛擬地址的概念。通過前面這兩種方式,CPU必須把虛擬地址轉(zhuǎn)換程物理內(nèi)存地址才能真正訪問內(nèi)存。為了提高這個轉(zhuǎn)換效率,CPU會緩存最近的虛擬內(nèi)存地址和物理內(nèi)存地址的映射關系,并保存在一個由CPU維護的映射表中。為了盡量提高內(nèi)存的訪問速度,需要在映射表中保存盡量多的映射關系。

linux的內(nèi)存管理采取的是分頁存取機制,為了保證物理內(nèi)存能得到充分的利用,內(nèi)核會按照LRU算法在適當?shù)臅r候?qū)⑽锢韮?nèi)存中不經(jīng)常使用的內(nèi)存頁自動交換到虛擬內(nèi)存中,而將經(jīng)常使用的信息保留到物理內(nèi)存。通常情況下,Linux默認情況下每頁是4K,這就意味著如果物理內(nèi)存很大,則映射表的條目將會非常多,會影響CPU的檢索效率。因為內(nèi)存大小是固定的,為了減少映射表的條目,可采取的辦法只有增加頁的尺寸。因此Hugepage便因此而來。也就是打破傳統(tǒng)的小頁面的內(nèi)存管理方式,使用大頁面2m,4m,16m等等。如此一來映射條目則明顯減少。如果系統(tǒng)有大量的物理內(nèi)存(大于8G),則物理32位的操作系統(tǒng)還是64位的,都應該使用Hugepage。

二、hugepages相關概念

Page Table: page table也就是一種用于內(nèi)存管理的實現(xiàn)方式,用于物理地址到虛擬之間的映射。因此對于內(nèi)存的訪問,先是訪問Page Table,然后根據(jù)Page Table 中的映射關系,隱式的轉(zhuǎn)移到物理地址來存取數(shù)據(jù)。


TLB: Translation Lookaside Buffer (TLB) ,CPU中的一塊固定大小的cache,包含了部分page table的映射關系,用于快速實現(xiàn)虛擬地址到物理地址的轉(zhuǎn)換。


hugetlb: hugetlb 是TLB中指向HugePage的一個entry(通常大于4k或預定義頁面大小)。 HugePage 通過hugetlb entries來實現(xiàn),也可以理解為HugePage 是hugetlb page entry的一個句柄。


hugetlbfs: 一個類似于tmpfs的新的in-memory filesystem,在2.6內(nèi)核被提出。

三、Regular Pages 與 HugePages

a、Regular Pages

在下圖中有兩個不同的進程,兩個進程對于內(nèi)存的訪問是首先訪問本地的page table,而本地的page table又參照了system-wide table的page(也就是前面描述的TLB),最終system-wide table中的entry指向了實際的物理地址。圖中物理地址page size大小4kb。也可以看到進程1和進程2在system-wide table中都指向了page2,也就是同一個物理地址。Oracle sga中共享內(nèi)存的使用會出現(xiàn)上述情形。

Linux下如何配值HugePages。

b、Huge Pages

在下圖中,本地的page table 與system page table中都包含了huge page屬性。因此page table中的任意一個page可能使用了常規(guī)的page,

也有可能使用了huge page。同樣進程1和進程2都共享了其中的Hpage2。圖中的物理內(nèi)存常規(guī)的page size是4kb,huge page size 是4mb。

Linux下如何配值HugePages。

四、 hugepage 優(yōu)點

對于較大的系統(tǒng)內(nèi)存以及sga,使用hugepage可以極大程度的提高Oracle數(shù)據(jù)庫性能。

a、Not swappable

無需交換。也就是不存在頁面由于內(nèi)存空間不足而存在換入換出的問題

b、Relief of TLB pressure

減輕TLB的壓力,也就是降低了cpu cache可緩存的地址映射壓力。由于使用了huge page,相同的內(nèi)存大小情況下,管理的虛擬地址數(shù)量變少。

TLB entry可以包含更多的地址空間,cpu的尋址能力相應的得到了增強。

c、Decreased page table overhead

降低page table負載,對于普通的page,每個entry需要64bytes進行管理,對于50gb的內(nèi)存,管理這些entry,需要800mb的大小

(50*1024*1024)kb/4kb*64bytes/1024/1024=800mb。

d、Eliminated page table lookup overhead

消除page table查找負載

e、Faster overall memory performance

提高內(nèi)存的整體性能

關于 Linux下如何配值HugePages。問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道了解更多相關知識。

分享標題:Linux下如何配值HugePages。-創(chuàng)新互聯(lián)
標題URL:http://chinadenli.net/article2/ccihoc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)網(wǎng)站設計商城網(wǎng)站外貿(mào)網(wǎng)站建設企業(yè)建站電子商務

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設