您好,登錄后才能下訂單哦!
小編給大家分享一下RocketMQ如何實現性能優化,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
limits.conf 設置用戶能打開的最大文件數
vim /etc/security/limits.conf
# End of file
baseuser soft nofile 655360
baseuser hard nofile 655360
* soft nofile 655360
* hard nofile 655360
vim /etc/sysctl.conf
vm.overcommit_memory=1
vm.drop_caches=1
vm.zone_reclaim_mode=0
vm.max_map_count=655360
vm.dirty_background_ratio=50
vm.dirty_ratio=50
vm.dirty_writeback_centisecs=360000
vm.page-cluster=3
vm.swappiness=1
sysctl -p
是否允許內存的過量分配
當為0的時候,當用戶申請內存的時候,內核會去檢查是否有這么大的內存空間
當為1的時候,內核始終認為,有足夠大的內存空間,直到它用完了為止
當為2的時候,內核禁止任何形式的過量分配內存
寫入的時候,內核會清空緩存,騰出內存來,相當于sync
寫1的時候,會清空頁緩存,就是文件
寫2的時候,會清空inode和目錄樹
寫3的時候,都清空
This is a non-destructive operation and will only free things that are completely unused.
Dirty objects will continue to be in use until written out to disk and are not freeable.
If you run "sync" first to flush them out to disk, these drop operations will tend to free more memory.
如果為0的話,那么系統會傾向于從其他節點分配內存
如果為1的話,那么系統會傾向于從本地節點回收Cache內存多數時候
定義了一個進程能擁有的最多的內存區域,默認為65536
當dirty cache到了多少的時候,就啟動pdflush進程,將dirty cache寫回磁盤
當有dirty_background_bytes存在的時候,dirty_background_ratio是被自動計算的
當一個進程的dirty cache到了多少的時候,啟動pdflush進程,將dirty cache寫回磁盤
當dirty_bytes存在的時候,dirty_ratio是被自動計算的
pdflush每隔多久,自動運行一次(單位是百分之一秒)
每次swap in或者swap out操作多少內存頁為2的指數。等于0的時候,為1頁;等于1的時候,為2頁;等于2的時候,為4頁
swappiness=0 僅在內存不足的情況下,當剩余空閑內存低于vm.min_free_kbytes limit時,使用交換空間
swappiness=1 內核版本3.5及以上、Red Hat內核版本2.6.32-303及以上,進行最少量的交換,而不禁用交換
swappiness=10 當系統存在足夠內存時,推薦設置為該值以提高性能
swappiness=60 默認值
swappiness=100 內核將積極的使用交換空間
線上RocketMQ的JVM未做調優,堆內存使用8G;主要從RocketMQ配置參數方面梳理下。
flushDiskType=ASYNC_FLUSH
同步刷盤TPS過低,較難滿足業務發展需求
transientStorePoolEnable=true
消息寫入到堆外內存,消費時從pageCache消費,讀寫分離,提升集群性能
warmMapedFileEnable=true
開啟文件預熱,避免日志文件在分配內存時缺頁中斷
slaveReadEnable=true
消息占用物理內存的大小通過accessMessageInMemoryMaxRatio來配置默認為40%;如果消費的消息不在內存中,開啟slaveReadEnable時會從slave節點讀取;提高Master內存利用率
transferMsgByHeap默認true設置為false
Broker響應消費請求時,不必將數據重新讀到堆內存再發送給客戶端;直接從PageCache將數據發送給客戶端
看完了這篇文章,相信你對“RocketMQ如何實現性能優化”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。