成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Linux大頁(yè)與透明大頁(yè)

IT那活兒 / 2006人閱讀
Linux大頁(yè)與透明大頁(yè)

點(diǎn)擊上方“IT那活兒”,關(guān)注后了解更多精彩內(nèi)容?。?!




前言




最近看著手頭維護(hù)的數(shù)據(jù)庫(kù)服務(wù)器,發(fā)現(xiàn)物理內(nèi)存是越來(lái)越大,500G起步,TB也不在話下。都知道數(shù)據(jù)庫(kù)是一種吃內(nèi)存的軟件,但是面對(duì)如此巨大的物理內(nèi)存,如何高效的使用又成了一個(gè)話題,于是各家數(shù)據(jù)庫(kù)軟件廠商針對(duì)這個(gè)問(wèn)題都引入了參數(shù)調(diào)優(yōu)。

比如oracle的use_large_pages,mysql的large_pages,postgres的huge_pages等參數(shù),都是用來(lái)告訴數(shù)據(jù)庫(kù)是否使用大頁(yè)模式的內(nèi)存策略。





大頁(yè)vs透明大頁(yè)




這里有個(gè)關(guān)鍵詞就是 大頁(yè)(huge page),我們以postgres為例來(lái)查一下他們的文檔解釋:

其中有2段話比較重要,第一段就是說(shuō)使用大頁(yè)(huge page)能夠縮小page tables,減少cpu在內(nèi)存管理上的的系統(tǒng)開(kāi)銷,提高性能,注意依賴于操作系統(tǒng)的大頁(yè)配置情況。而第二段意思說(shuō)在Linux/FreeBSD這類操作系統(tǒng)上還有一種自動(dòng)的大頁(yè)(huge page)管理策略稱之為透明大頁(yè)(transparent  huge page/ THP), 而THP經(jīng)常會(huì)導(dǎo)致數(shù)據(jù)庫(kù)性能下降,hang之類的,需要禁用這個(gè)THP策略。作為oracle老司機(jī)一看這個(gè)TPH就很懂,不管是MOS上的文檔,還是處理過(guò)的案例都是一茬一茬的。如下:

由于THP引起大量的重啟、以及性能問(wèn)題 Oracle強(qiáng)烈建議客戶關(guān)閉THP特性。

經(jīng)過(guò)數(shù)據(jù)庫(kù)的文檔描述我們知道,數(shù)據(jù)庫(kù)廠商都建議啟用大頁(yè)來(lái)提升性能,并且都強(qiáng)烈建議關(guān)閉透明大頁(yè)以免引起各類故障。接下來(lái)我們就來(lái)深入了解一下這2個(gè)點(diǎn):

大頁(yè)(huge page/large page):

我們以rhel的文檔為參考,如下:

文檔主要描述linux大多數(shù)頁(yè)為標(biāo)準(zhǔn)頁(yè)4k,當(dāng)內(nèi)存較大時(shí)建議配置大頁(yè),降低開(kāi)銷之類的。

Linux內(nèi)存采用段頁(yè)式管理,這里我們不在深入探討。物理內(nèi)存會(huì)按照標(biāo)準(zhǔn)頁(yè)(page)4k來(lái)進(jìn)行劃分,所有的4k頁(yè)打包在一塊就是page tables,比較簡(jiǎn)單。當(dāng)物理內(nèi)存為100G時(shí) page tables=(100*1024*1024/4)。

由此可以確認(rèn)page tables與物理內(nèi)存成正比關(guān)系,隨著物理內(nèi)存的增長(zhǎng),page tables 則會(huì)越來(lái)越龐大不利于管理,損耗就會(huì)逐步上升。舉個(gè)例子:當(dāng)我們口袋里有1000塊的1元時(shí),錢包都炸裂了,可以想象這是多么恐怖的一件事。此時(shí)我們就需要使用50和100的單位了。這個(gè)單位就是具體的 huge page size,通常在linux中為2048k,也就是2M。當(dāng)巨量的數(shù)據(jù)庫(kù)內(nèi)存使用2M 的大頁(yè)時(shí),產(chǎn)生的page tables則相對(duì)較小,page table的理開(kāi)銷則相對(duì)較小,從而提升系統(tǒng)性能。如下圖:

實(shí)際數(shù)據(jù)庫(kù)一般使用共享內(nèi)存,大量的用戶連接進(jìn)程attach到一個(gè)巨大的共享內(nèi)存段(page table)時(shí),也會(huì)產(chǎn)生隱性開(kāi)銷,比如進(jìn)程fork過(guò)慢導(dǎo)致數(shù)據(jù)庫(kù)連接建立緩慢等等。搞清楚了大頁(yè)原理,我們?cè)谠O(shè)置數(shù)據(jù)庫(kù)大頁(yè)時(shí)則相對(duì)簡(jiǎn)單了,一般計(jì)算公式為:

大頁(yè)數(shù)=共享內(nèi)存(GB) *1024/2,當(dāng)我們算出頁(yè)量時(shí),設(shè)置Linux 參數(shù)vm.nr_hugepages就可以了,如下:

圖中我們使用計(jì)算器求出3G內(nèi)存的頁(yè)數(shù),然后設(shè)置nr_hugepages使之生效,就是HugePages_Total,當(dāng)然我們這里沒(méi)有使用所以大頁(yè)都是Free狀態(tài). 注意寫(xiě)入sysctl.conf中后可以永久生效。

透明大頁(yè)(transparent huge page / THP)


老樣子先查一下rhel的文檔描述,如下:

主要描述由于上文的大頁(yè)配置為手動(dòng)模式,不是很靈活,于是內(nèi)核又搞出了一個(gè)自動(dòng)分配大頁(yè)的技術(shù),用來(lái)代替手動(dòng)分配大頁(yè)。以及THP主動(dòng)性的分配連續(xù)大頁(yè)內(nèi)存以及頻繁的page compact等可能會(huì)導(dǎo)致內(nèi)存分配延遲,引發(fā)性能問(wèn)題。

關(guān)閉也很簡(jiǎn)單,如下:

# echo never > /sys/kernel/mm/transparent_hugepage/enabled

#
 或者修改/etc/grub.conf 添加transparent_hugepage=neve





總結(jié)



最后我們總結(jié)一下,實(shí)際在數(shù)據(jù)庫(kù)服務(wù)器上,巨大的共享內(nèi)存段屬于啟動(dòng)時(shí)的一次性分配,且大部分的啟動(dòng)操作都屬于計(jì)劃性的工作,不需要內(nèi)核給我們動(dòng)態(tài)分配,而數(shù)據(jù)庫(kù)連接的那些server process往往內(nèi)存較小也不需要用到大頁(yè),也就是Oracle強(qiáng)烈建議關(guān)閉THP的原因,本文就到此為止。





END




本 文 原 創(chuàng) 來(lái) 源:IT那活兒微信公眾號(hào)(上海新炬王翦團(tuán)隊(duì))


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/129728.html

相關(guān)文章

  • Swoole 源碼分析——內(nèi)存模塊之共享內(nèi)存

    摘要:前言我們知道,由于沒(méi)有多線程模型,所以更多的使用多進(jìn)程模型,因此代碼相對(duì)來(lái)說(shuō)更加簡(jiǎn)潔,減少了各種線程鎖的阻塞與同步,但是也帶來(lái)了新的問(wèn)題數(shù)據(jù)同步。相比多線程之前可以直接共享進(jìn)程的內(nèi)存,進(jìn)程之間數(shù)據(jù)的相互同步依賴于共享內(nèi)存。 前言 我們知道,由于 PHP 沒(méi)有多線程模型,所以 swoole 更多的使用多進(jìn)程模型,因此代碼相對(duì)來(lái)說(shuō)更加簡(jiǎn)潔,減少了各種線程鎖的阻塞與同步,但是也帶來(lái)了新的問(wèn)題...

    diabloneo 評(píng)論0 收藏0
  • Linux 30周年:Linux 5.14閃亮登場(chǎng)!添加新硬件和秘密內(nèi)存區(qū)域支持

    摘要:或許,最重要的是和內(nèi)核調(diào)度,兩者都是進(jìn)行清理工作,以緩解英特爾的和漏洞。說(shuō)到英特爾,增加了對(duì)的平臺(tái)的更多支持,該平臺(tái)可根據(jù)需要優(yōu)先處理工作負(fù)載。另外,還將增加戴爾硬件隱私支持。linux之父Linus Torvald:慶祝完Linux 30 歲了吧,一起來(lái)看新的 Linux 5.14。linux5.14晉升為穩(wěn)定版,在精彩的2021年秋季linux發(fā)行版大量出現(xiàn)之前提供最新的功能、硬件支持和...

    NicolasHe 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<