這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)怎樣通過NOSQL內(nèi)存數(shù)據(jù)庫來進(jìn)行Linux性能優(yōu)化,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、成都網(wǎng)站制作與策劃設(shè)計,西鄉(xiāng)塘網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:西鄉(xiāng)塘等地區(qū)。西鄉(xiāng)塘做網(wǎng)站價格咨詢:13518219792
我們不僅要選擇適合自己口味的NoSql數(shù)據(jù)庫,比如基于內(nèi)存的Memcache或redis,更適合企業(yè)級架構(gòu)的Cassandra或HBase,同時,針對Linux服務(wù)器的優(yōu)化也必不可少。下面小編來講解下怎樣基于NoSQL內(nèi)存數(shù)據(jù)庫來進(jìn)行Linux性能優(yōu)化?
Linux性能優(yōu)化是一個很大的話題,涉及應(yīng)用程序棧的層次架構(gòu),并非是一門精確的科學(xué)。本文是Linux性能優(yōu)化系列文章的第一篇,著眼于NoSQL內(nèi)存數(shù)據(jù)庫的Linux服務(wù)器性能優(yōu)化。為此,我們將重構(gòu)Linux服務(wù)器的內(nèi)核。
也許你曾經(jīng)親自下載、編譯過Linux內(nèi)核,因此,在重構(gòu)Linux內(nèi)核之前,請不要忘記風(fēng)險。
通過優(yōu)化vanilla 3.x kernel中的如下選項可以應(yīng)對我們所提到的工作負(fù)載挑戰(zhàn):
CONFIG_TASK_IO_ACCOUNTING:非常重要,允許您監(jiān)控服務(wù)器進(jìn)程的磁盤活動狀態(tài)。
CONFIG_SLUB:Chris Lameter的內(nèi)核對象緩存系統(tǒng)。相比SLAB而言,在管理內(nèi)核內(nèi)存分配方面效率更高。
CONFIG_JUMP_LABEL:內(nèi)核分支優(yōu)化,使內(nèi)核速度更快。
CONFIG_NUMA and friends:適用于多核處理器,為內(nèi)核啟用NUMA功能,提升對高速緩存和內(nèi)存的一致性支持。
CONFIG_SPARSEMEM_VMEMMAP:針對pfn_to_page和page_to_pfn函數(shù)的稀疏內(nèi)存優(yōu)化選項。
CONFIG_TRANSPARENT_HUGEPAGE, CONFIG_COMPACTION, CONFIG_MIGRATION, CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS:這些參數(shù)可用于分配大于4KB的內(nèi)存頁,為內(nèi)存饑餓進(jìn)程加速分配內(nèi)存。另外,它們還可以對內(nèi)存頁進(jìn)行壓縮和遷移,以對大型頁面進(jìn)行安全查詢,并進(jìn)一步減少內(nèi)存碎片。
怎樣基于NoSQL內(nèi)存數(shù)據(jù)庫來進(jìn)行Linux性能優(yōu)化
CONFIG_KSM:以MADV_MERGEABLE的方式取消內(nèi)存頁面的標(biāo)記是一個非常重要的機制,可以以終極的方式節(jié)省內(nèi)存。
CONFIG_ZRAM:提供了一個基于內(nèi)存的塊設(shè)備。在此塊設(shè)備中寫入的數(shù)據(jù)會被壓縮,并存儲在內(nèi)存中。這對臨時存儲空間非常有用(掛載在/tmp目錄下),由于此特性用于臨時區(qū)域,請將它構(gòu)建為一個模塊,并小心使用。
CONFIG_ZCACHE, CONFIG_ZSMALLOC & CONFIG_CLEANCACHE:一個內(nèi)存頁面壓縮框架,可透明地壓縮清潔頁面和交換頁面,從而為基于內(nèi)存的工作負(fù)荷提供顯著的性能提升。CleanCache使用ZCache框架對內(nèi)存頁面進(jìn)行壓縮,可以在高內(nèi)存環(huán)境下有效地降低I/O請求。由于此特性用于臨時區(qū)域,請謹(jǐn)慎使用。
當(dāng)然,我們的優(yōu)化是基于x86_64架構(gòu)的。此外,另一些選項也會涉及到工作負(fù)荷的性能優(yōu)化:
CONFIG_PERF_EVENTS:內(nèi)核性能計數(shù)器,與perf等工具共同使用。尤其適用于深度性能監(jiān)控。
CONFIG_PROFILING:性能分析計數(shù)器,與OProfile等工具共同使用。與PERF_EVENTS同樣重要。
HAVE_BPF_JIT:基于時間規(guī)則的編譯器,用于基于PCAP(packet capture library)并使用伯克利包篩選器(Berkeley Packet Filter,如tcpdump)的用戶工具,可以大幅提升復(fù)雜規(guī)則的處理性能。通過/proc/sys/net/core/bpf_jit_enable啟用它。
我們可以選擇最適合自己的選項,保存、編譯并運行它,看看最后的結(jié)果是否能帶給你成就感!
也許會有其它許多技術(shù),可以幫助我們建立高效的基礎(chǔ)架構(gòu),優(yōu)化基于內(nèi)存的工作負(fù)載(比如,RAMSter可以提供交換集群)。不論如何,我們都需對我們的內(nèi)核優(yōu)化結(jié)果進(jìn)行測試,以構(gòu)建一個穩(wěn)定的生產(chǎn)環(huán)境。
上述就是小編為大家分享的怎樣通過NoSQL內(nèi)存數(shù)據(jù)庫來進(jìn)行Linux性能優(yōu)化了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。