您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關怎樣通過NoSQL內存數據庫來進行Linux性能優化,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
我們不僅要選擇適合自己口味的NoSQL數據庫,比如基于內存的Memcache或Redis,更適合企業級架構的Cassandra或HBase,同時,針對Linux服務器的優化也必不可少。下面小編來講解下怎樣基于NoSQL內存數據庫來進行Linux性能優化?
Linux性能優化是一個很大的話題,涉及應用程序棧的層次架構,并非是一門精確的科學。本文是Linux性能優化系列文章的第一篇,著眼于NoSQL內存數據庫的Linux服務器性能優化。為此,我們將重構Linux服務器的內核。
也許你曾經親自下載、編譯過Linux內核,因此,在重構Linux內核之前,請不要忘記風險。
通過優化vanilla 3.x kernel中的如下選項可以應對我們所提到的工作負載挑戰:
CONFIG_TASK_IO_ACCOUNTING:非常重要,允許您監控服務器進程的磁盤活動狀態。
CONFIG_SLUB:Chris Lameter的內核對象緩存系統。相比SLAB而言,在管理內核內存分配方面效率更高。
CONFIG_JUMP_LABEL:內核分支優化,使內核速度更快。
CONFIG_NUMA and friends:適用于多核處理器,為內核啟用NUMA功能,提升對高速緩存和內存的一致性支持。
CONFIG_SPARSEMEM_VMEMMAP:針對pfn_to_page和page_to_pfn函數的稀疏內存優化選項。
CONFIG_TRANSPARENT_HUGEPAGE, CONFIG_COMPACTION, CONFIG_MIGRATION, CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS:這些參數可用于分配大于4KB的內存頁,為內存饑餓進程加速分配內存。另外,它們還可以對內存頁進行壓縮和遷移,以對大型頁面進行安全查詢,并進一步減少內存碎片。
怎樣基于NoSQL內存數據庫來進行Linux性能優化
CONFIG_KSM:以MADV_MERGEABLE的方式取消內存頁面的標記是一個非常重要的機制,可以以終極的方式節省內存。
CONFIG_ZRAM:提供了一個基于內存的塊設備。在此塊設備中寫入的數據會被壓縮,并存儲在內存中。這對臨時存儲空間非常有用(掛載在/tmp目錄下),由于此特性用于臨時區域,請將它構建為一個模塊,并小心使用。
CONFIG_ZCACHE, CONFIG_ZSMALLOC & CONFIG_CLEANCACHE:一個內存頁面壓縮框架,可透明地壓縮清潔頁面和交換頁面,從而為基于內存的工作負荷提供顯著的性能提升。CleanCache使用ZCache框架對內存頁面進行壓縮,可以在高內存環境下有效地降低I/O請求。由于此特性用于臨時區域,請謹慎使用。
當然,我們的優化是基于x86_64架構的。此外,另一些選項也會涉及到工作負荷的性能優化:
CONFIG_PERF_EVENTS:內核性能計數器,與perf等工具共同使用。尤其適用于深度性能監控。
CONFIG_PROFILING:性能分析計數器,與OProfile等工具共同使用。與PERF_EVENTS同樣重要。
HAVE_BPF_JIT:基于時間規則的編譯器,用于基于PCAP(packet capture library)并使用伯克利包篩選器(Berkeley Packet Filter,如tcpdump)的用戶工具,可以大幅提升復雜規則的處理性能。通過/proc/sys/net/core/bpf_jit_enable啟用它。
我們可以選擇最適合自己的選項,保存、編譯并運行它,看看最后的結果是否能帶給你成就感!
也許會有其它許多技術,可以幫助我們建立高效的基礎架構,優化基于內存的工作負載(比如,RAMSter可以提供交換集群)。不論如何,我們都需對我們的內核優化結果進行測試,以構建一個穩定的生產環境。
上述就是小編為大家分享的怎樣通過NoSQL內存數據庫來進行Linux性能優化了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。