溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎樣通過NoSQL內(nèi)存數(shù)據(jù)庫(kù)來(lái)進(jìn)行Linux性能優(yōu)化

發(fā)布時(shí)間:2021-10-27 16:36:09 來(lái)源:億速云 閱讀:122 作者:柒染 欄目:數(shù)據(jù)庫(kù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)怎樣通過NoSQL內(nèi)存數(shù)據(jù)庫(kù)來(lái)進(jìn)行Linux性能優(yōu)化,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

  我們不僅要選擇適合自己口味的NoSQL數(shù)據(jù)庫(kù),比如基于內(nèi)存的Memcache或Redis,更適合企業(yè)級(jí)架構(gòu)的Cassandra或HBase,同時(shí),針對(duì)Linux服務(wù)器的優(yōu)化也必不可少。下面小編來(lái)講解下怎樣基于NoSQL內(nèi)存數(shù)據(jù)庫(kù)來(lái)進(jìn)行Linux性能優(yōu)化?

  Linux性能優(yōu)化是一個(gè)很大的話題,涉及應(yīng)用程序棧的層次架構(gòu),并非是一門精確的科學(xué)。本文是Linux性能優(yōu)化系列文章的第一篇,著眼于NoSQL內(nèi)存數(shù)據(jù)庫(kù)的Linux服務(wù)器性能優(yōu)化。為此,我們將重構(gòu)Linux服務(wù)器的內(nèi)核。

  也許你曾經(jīng)親自下載、編譯過Linux內(nèi)核,因此,在重構(gòu)Linux內(nèi)核之前,請(qǐng)不要忘記風(fēng)險(xiǎn)。

  通過優(yōu)化vanilla 3.x kernel中的如下選項(xiàng)可以應(yīng)對(duì)我們所提到的工作負(fù)載挑戰(zhàn):

  CONFIG_TASK_IO_ACCOUNTING:非常重要,允許您監(jiān)控服務(wù)器進(jìn)程的磁盤活動(dòng)狀態(tài)。

  CONFIG_SLUB:Chris Lameter的內(nèi)核對(duì)象緩存系統(tǒng)。相比SLAB而言,在管理內(nèi)核內(nèi)存分配方面效率更高。

  CONFIG_JUMP_LABEL:內(nèi)核分支優(yōu)化,使內(nèi)核速度更快。

  CONFIG_NUMA and friends:適用于多核處理器,為內(nèi)核啟用NUMA功能,提升對(duì)高速緩存和內(nèi)存的一致性支持。

  CONFIG_SPARSEMEM_VMEMMAP:針對(duì)pfn_to_page和page_to_pfn函數(shù)的稀疏內(nèi)存優(yōu)化選項(xiàng)。

  CONFIG_TRANSPARENT_HUGEPAGE, CONFIG_COMPACTION, CONFIG_MIGRATION, CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS:這些參數(shù)可用于分配大于4KB的內(nèi)存頁(yè),為內(nèi)存饑餓進(jìn)程加速分配內(nèi)存。另外,它們還可以對(duì)內(nèi)存頁(yè)進(jìn)行壓縮和遷移,以對(duì)大型頁(yè)面進(jìn)行安全查詢,并進(jìn)一步減少內(nèi)存碎片。

  怎樣基于NoSQL內(nèi)存數(shù)據(jù)庫(kù)來(lái)進(jìn)行Linux性能優(yōu)化

  CONFIG_KSM:以MADV_MERGEABLE的方式取消內(nèi)存頁(yè)面的標(biāo)記是一個(gè)非常重要的機(jī)制,可以以終極的方式節(jié)省內(nèi)存。

  CONFIG_ZRAM:提供了一個(gè)基于內(nèi)存的塊設(shè)備。在此塊設(shè)備中寫入的數(shù)據(jù)會(huì)被壓縮,并存儲(chǔ)在內(nèi)存中。這對(duì)臨時(shí)存儲(chǔ)空間非常有用(掛載在/tmp目錄下),由于此特性用于臨時(shí)區(qū)域,請(qǐng)將它構(gòu)建為一個(gè)模塊,并小心使用。

  CONFIG_ZCACHE, CONFIG_ZSMALLOC & CONFIG_CLEANCACHE:一個(gè)內(nèi)存頁(yè)面壓縮框架,可透明地壓縮清潔頁(yè)面和交換頁(yè)面,從而為基于內(nèi)存的工作負(fù)荷提供顯著的性能提升。CleanCache使用ZCache框架對(duì)內(nèi)存頁(yè)面進(jìn)行壓縮,可以在高內(nèi)存環(huán)境下有效地降低I/O請(qǐng)求。由于此特性用于臨時(shí)區(qū)域,請(qǐng)謹(jǐn)慎使用。

  當(dāng)然,我們的優(yōu)化是基于x86_64架構(gòu)的。此外,另一些選項(xiàng)也會(huì)涉及到工作負(fù)荷的性能優(yōu)化:

  CONFIG_PERF_EVENTS:內(nèi)核性能計(jì)數(shù)器,與perf等工具共同使用。尤其適用于深度性能監(jiān)控。

  CONFIG_PROFILING:性能分析計(jì)數(shù)器,與OProfile等工具共同使用。與PERF_EVENTS同樣重要。

  HAVE_BPF_JIT:基于時(shí)間規(guī)則的編譯器,用于基于PCAP(packet capture library)并使用伯克利包篩選器(Berkeley Packet Filter,如tcpdump)的用戶工具,可以大幅提升復(fù)雜規(guī)則的處理性能。通過/proc/sys/net/core/bpf_jit_enable啟用它。

  我們可以選擇最適合自己的選項(xiàng),保存、編譯并運(yùn)行它,看看最后的結(jié)果是否能帶給你成就感!

  也許會(huì)有其它許多技術(shù),可以幫助我們建立高效的基礎(chǔ)架構(gòu),優(yōu)化基于內(nèi)存的工作負(fù)載(比如,RAMSter可以提供交換集群)。不論如何,我們都需對(duì)我們的內(nèi)核優(yōu)化結(jié)果進(jìn)行測(cè)試,以構(gòu)建一個(gè)穩(wěn)定的生產(chǎn)環(huán)境。

上述就是小編為大家分享的怎樣通過NoSQL內(nèi)存數(shù)據(jù)庫(kù)來(lái)進(jìn)行Linux性能優(yōu)化了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI