這篇文章將為大家詳細(xì)講解有關(guān)如何實(shí)現(xiàn)RocketMQ性能壓測(cè)分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
站在用戶的角度思考問題,與客戶深入溝通,找到齊齊哈爾網(wǎng)站設(shè)計(jì)與齊齊哈爾網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋齊齊哈爾地區(qū)。
1臺(tái)nameserver
1臺(tái)broker 異步刷盤
2臺(tái)producer
2臺(tái)consumer
CPU 兩顆x86_64cpu,每顆cpu12核,共24核
內(nèi)存 48G
網(wǎng)卡 千兆網(wǎng)卡
磁盤 除broker機(jī)器的磁盤是RAID10,共1.1T,其他都是普通磁盤約500G
橙色箭頭為數(shù)據(jù)流向,黑色連接線為網(wǎng)絡(luò)連接
broker是一個(gè)存儲(chǔ)型的系統(tǒng),針對(duì)磁盤讀寫有自己的刷盤策略,大量使用文件內(nèi)存映射,文件句柄和內(nèi)存消耗量都比較巨大。因此,系統(tǒng)的默認(rèn)設(shè)置并不能使RocketMQ發(fā)揮很好的性能,需要對(duì)系統(tǒng)的pagecache,內(nèi)存分配,I/O調(diào)度,文件句柄限制做一些針對(duì)性的參數(shù)設(shè)置。
系統(tǒng)I/O和虛擬內(nèi)存設(shè)置
echo 'vm.overcommit_memory=1' >> /etc/sysctl.conf
echo 'vm.min_free_kbytes=5000000' >> /etc/sysctl.conf
echo 'vm.drop_caches=1' >> /etc/sysctl.conf
echo 'vm.zone_reclaim_mode=0' >> /etc/sysctl.conf
echo 'vm.max_map_count=655360' >> /etc/sysctl.conf
echo 'vm.dirty_background_ratio=50' >> /etc/sysctl.conf
echo 'vm.dirty_ratio=50' >> /etc/sysctl.conf
echo 'vm.page-cluster=3' >> /etc/sysctl.conf
echo 'vm.dirty_writeback_centisecs=360000' >> /etc/sysctl.conf
echo 'vm.swappiness=10' >> /etc/sysctl.conf
系統(tǒng)文件句柄設(shè)置
echo 'ulimit -n 1000000' >> /etc/profile
echo 'admin hard nofile 1000000' >> /etc/security/limits.conf
系統(tǒng)I/O調(diào)度算法
deadline
采用RocketMQ默認(rèn)設(shè)置
-server -Xms4g -Xmx4g -Xmn2g -XX:PermSize=128m -XX:MaxPermSize=320m -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:+DisableExplicitGC -verbose:gc -Xloggc:/root/rocketmq_gc.log -XX:+PrintGCDetails -XX:-OmitStackTraceInFastThrow
壓測(cè)單機(jī)TPS,評(píng)估單機(jī)容量
最高的TPS不代表最適合的TPS,必須在TPS和系統(tǒng)資源各項(xiàng)指標(biāo)之間取得一個(gè)權(quán)衡,系統(tǒng)資源快達(dá)到極限,但尚能正常運(yùn)轉(zhuǎn),此時(shí)的TPS是比較合適的。比如ioutil最好不要超過75%,cpu load最好不超過總的核數(shù)或者太多,沒有發(fā)生頻繁的swap導(dǎo)致較大的內(nèi)存顛簸。所以不能只關(guān)注TPS,同時(shí)要關(guān)注以下指標(biāo):
消息:TPS
cpu:load,sy,us
內(nèi)存:useed,free,swap,cache,buffer
I/O:iops,ioutil,吞吐量(數(shù)據(jù)物理讀寫大小/秒)
網(wǎng)絡(luò):網(wǎng)卡流量
兩臺(tái)producer起等量線程,不間斷的向broker發(fā)送大小為2K的消息,2K消息意味著1000個(gè)字符,這個(gè)消息算比較大了,完全可以滿足業(yè)務(wù)需要。
TPS比較高
經(jīng)過長(zhǎng)時(shí)間測(cè)試和觀察,單個(gè)borker TPS高達(dá)16000,也就是說服務(wù)器能每秒處理16000條消息,且消費(fèi)端及時(shí)消費(fèi),從服務(wù)器存儲(chǔ)消息到消費(fèi)端消費(fèi)完該消息平均時(shí)延約為1.3秒,且該時(shí)延不會(huì)隨著TPS變大而變大,是個(gè)比較穩(wěn)定的值。
Broker穩(wěn)定性較高
兩臺(tái)producer一共啟動(dòng)44個(gè)線程10個(gè)小時(shí)不停發(fā)消息,broker非常穩(wěn)定,這可簡(jiǎn)單意味著實(shí)際生產(chǎn)環(huán)境中可以有幾十個(gè)producer向單臺(tái)broker高頻次發(fā)送消息,但是broker還會(huì)保持穩(wěn)定。在這樣比較大的壓力下,broker的load最高才到3(24核的cpu),有大量的內(nèi)存可用。
而且,連續(xù)10幾小時(shí)測(cè)試中,broker的jvm非常平穩(wěn),沒有發(fā)生一次fullgc,新生代GC回收效率非常高,內(nèi)存沒有任何壓力,以下是摘自gclog的數(shù)據(jù):
2014-07-17T22:43:07.407+0800: 79696.377: [GC2014-07-17T22:43:07.407+0800: 79696.377: [ParNew: 1696113K->18686K(1887488K), 0.1508800 secs] 2120430K->443004K(3984640K), 0.1513730 secs] [Times: user=1.36 sys=0.00, real=0.16 secs]
新生代大小為2g,回收前內(nèi)存占用約為1.7g,回收后內(nèi)存占用17M左右,回收效率非常高。
關(guān)于磁盤IO和內(nèi)存
平均單個(gè)物理IO耗時(shí)約為0.06毫秒,IO幾乎沒有額外等待,因?yàn)閍wait和svctm基本相等。整個(gè)測(cè)試過程,沒有發(fā)生磁盤物理讀,因?yàn)槲募成涞年P(guān)系,大量的cached內(nèi)存將文件內(nèi)容都緩存了,內(nèi)存還有非常大的可用空間。
系統(tǒng)的性能瓶頸
TPS到達(dá)16000后,再就上不去了,此時(shí)千兆網(wǎng)卡的每秒流量約為100M,基本達(dá)到極限了,所以網(wǎng)卡是性能瓶頸。不過,系統(tǒng)的IOUTIL最高已經(jīng)到達(dá)40%左右了,這個(gè)數(shù)字已經(jīng)不低了,所以即使網(wǎng)絡(luò)流量增加,但是系統(tǒng)IO指標(biāo)可能已經(jīng)不健康了,總體來看,單機(jī)16000的TPS是比較安全的值。
以下是各項(xiàng)指標(biāo)的趨勢(shì)
TPS
TPS最高可以壓倒16000左右,再往上壓,TPS有下降趨勢(shì)
內(nèi)存
內(nèi)存非常平穩(wěn),總量48G,實(shí)際可用內(nèi)存非常高
沒有發(fā)生swap交換,不會(huì)因?yàn)轭l繁訪問磁盤導(dǎo)致系統(tǒng)性能顛簸
大量?jī)?nèi)存被用來作為文件緩存,見cached指標(biāo),極大的避免了磁盤物理讀
磁盤吞吐量
隨著線程數(shù)增加,磁盤物理IO每秒數(shù)據(jù)讀寫大約為70M左右
IO百分比
隨著線程數(shù)增加,IO百分比最后穩(wěn)定在40%左右,這個(gè)數(shù)字可以接受
關(guān)于“如何實(shí)現(xiàn)RocketMQ性能壓測(cè)分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
網(wǎng)頁名稱:如何實(shí)現(xiàn)RocketMQ性能壓測(cè)分析
標(biāo)題路徑:http://jinyejixie.com/article30/gggepo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站改版、建站公司、網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)