TransparentHugepages該如何理解

Transparent Hugepages該如何理解,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

成都創(chuàng)新互聯(lián)是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來(lái)公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶(hù)提供滿(mǎn)意周到的服務(wù),在本地打下了良好的口碑,在過(guò)去的10年時(shí)間我們累計(jì)服務(wù)了上千家以及全國(guó)政企客戶(hù),如成都人造霧等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過(guò)硬的技術(shù)實(shí)力獲得客戶(hù)的一致稱(chēng)揚(yáng)。

用過(guò)不少種類(lèi)的數(shù)據(jù)庫(kù)的人會(huì)遇到一個(gè)問(wèn)題, transparent Hugepages 在不少的數(shù)據(jù)庫(kù)中都被提到 disabled, turn off . Why should we turn off the transparent hugepage ?

透明的巨型頁(yè)面是 transparenet 的專(zhuān)用中文釋義名詞,對(duì)于LINUX kernel 來(lái)說(shuō) page, 頁(yè)面相當(dāng)于一個(gè)內(nèi)存的unit, (其實(shí)對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō),大部分也是).默認(rèn)來(lái)說(shuō)是2048KB, 當(dāng)然有的不是.

Transparent Hugepages該如何理解

transparent Huge pages 允許為頻繁頻繁訪問(wèn)的數(shù)據(jù)保留相關(guān)的資源,打開(kāi)他的確是可以提高系統(tǒng)的性能,保持?jǐn)?shù)據(jù)滯留在linux 內(nèi)存中.

在LINUX 中有一項(xiàng)建議(非數(shù)據(jù)庫(kù)服務(wù)器), 設(shè)置3/8 以?xún)?nèi)的內(nèi)存為transparenet huge page. 因?yàn)椴糠諰INIUX的應(yīng)用也不能使用transparenet huge page. 而在Linux內(nèi)核中包括了 THP 的壓縮功能,壓縮的操作對(duì)資源是密集型的操作,對(duì)整體的系統(tǒng)性能是有影響的.

那么問(wèn)題回到一個(gè)basement level , 為什么會(huì)有 HP  THP, 這樣的東西,大部分的應(yīng)用程序和OS 運(yùn)行在虛擬內(nèi)存中,虛擬內(nèi)存,虛擬內(nèi)存就是物理內(nèi)存的映射,相當(dāng)于地址轉(zhuǎn)換,CPU通過(guò) cpu's memory management unit  簡(jiǎn)稱(chēng)mmu來(lái)訪問(wèn), 自然MMU也有自己的cache 來(lái)緩存經(jīng)常訪問(wèn)的頁(yè)面.這個(gè)cache 叫, Translation lookside buffer(TLB), 但實(shí)際上CPU 訪問(wèn)的內(nèi)存數(shù)量越來(lái)越多

Transparent Hugepages該如何理解

后,會(huì)帶來(lái)訪問(wèn)率或者叫命中率的降低, 那解決的方法有兩種

1  提高 TLB 的大小 (這不容易,這是硬件的問(wèn)題)

2  將每次尋址的單元擴(kuò)大, 也就是以前一個(gè)頁(yè)面 4KB,那我們將一個(gè)頁(yè)面變?yōu)?MB ,這樣訪問(wèn)的效率不就提升了. 所以就有了HP  THP 這樣的東西了.

那這樣的問(wèn)題就產(chǎn)生了新的問(wèn)題,一次盡量訪問(wèn)更多的內(nèi)存, 但內(nèi)存也有碎片,也不見(jiàn)得一次是完整的連續(xù)的空間, 如果不能滿(mǎn)足HP THP 的需求, 則系統(tǒng)會(huì)對(duì)頁(yè)面進(jìn)行換出, 壓縮 這樣一番下來(lái),會(huì)出現(xiàn)一個(gè)名詞叫 latency spikes  , 會(huì)嚴(yán)重影響訪問(wèn)的時(shí)間和性能.

而為什么有些數(shù)據(jù)庫(kù)要禁用掉THP ,主要的原因是這類(lèi)數(shù)據(jù)庫(kù)大部分訪問(wèn)內(nèi)存的方式是分散的,并不是訪問(wèn)連續(xù)的頁(yè)面,而這樣的訪問(wèn)模式,就會(huì)造成內(nèi)存的碎片化.訪問(wèn)的page 不也不是大量連續(xù)性的. 并且在不啟用THP 時(shí)申請(qǐng)4KB的內(nèi)存時(shí),LINUX會(huì)分配相應(yīng)的內(nèi)存給應(yīng)用, 但如果是在系統(tǒng)級(jí)別啟用了THP,則類(lèi)似數(shù)據(jù)庫(kù)申請(qǐng)內(nèi)存時(shí),即使申請(qǐng)的值是4KB ,但分配是會(huì)以大于4KB例如 2MB 來(lái)進(jìn)行分配,這樣數(shù)據(jù)庫(kù)申請(qǐng)使用內(nèi)存的方式也會(huì)出現(xiàn)問(wèn)題,和相關(guān)的損耗.

Transparent Hugepages該如何理解

Transparent Hugepages該如何理解

Transparent Hugepages該如何理解

Transparent Hugepages該如何理解

值得說(shuō)明的是大部分?jǐn)?shù)據(jù)庫(kù)都會(huì)建議你關(guān)閉 THP , 包括 MySQL  POSTGRESQL  ORACLE 等數(shù)據(jù)庫(kù)也是建議關(guān)閉THP. 

但PostgreSQL 中有一個(gè)設(shè)置從PG9.4而來(lái), Huge Page 并且有三個(gè)參數(shù) ON OFF  TRY,默認(rèn)使用 try ,內(nèi)核中有足夠的大頁(yè)面,PostgreSQL將嘗試使用大頁(yè)面,若沒(méi)有就不使用它。強(qiáng)制使用巨大的頁(yè)面,內(nèi)核沒(méi)有足夠大的頁(yè)面則PostgreSQL將無(wú)法啟動(dòng)。HugePages可以通過(guò)顯著減少內(nèi)存頁(yè)表中的頁(yè)表?xiàng)l目數(shù)量來(lái)提高系統(tǒng)性能,要讓?xiě)?yīng)用程序使用HugePages,需要顯式指令。用這種方式更改應(yīng)用程序有時(shí)可以,有時(shí)不行,需要在系統(tǒng)管理級(jí)別進(jìn)行重新設(shè)計(jì)。因此,引入了透明巨頁(yè)(THP)技術(shù)。如果啟用,它可能會(huì)在應(yīng)用程序?qū)嶋H上“不知道”的情況下為應(yīng)用程序分配巨大的頁(yè)面;因此,透明度。

猜測(cè)這也就是PG 為什么支持HP 而建議關(guān)閉THP的原因之一吧

關(guān)于Transparent Hugepages該如何理解問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

本文名稱(chēng):TransparentHugepages該如何理解
地址分享:http://muchs.cn/article42/gddiec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)域名注冊(cè)、標(biāo)簽優(yōu)化、網(wǎng)站改版、商城網(wǎng)站

廣告

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

成都定制網(wǎng)站建設(shè)