日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

RocketMQ性能压测分析(转载)

發(fā)布時(shí)間:2024/4/17 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RocketMQ性能压测分析(转载) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一?? 機(jī)器部署

1.1? 機(jī)器組成

1臺(tái)nameserver

1臺(tái)broker??異步刷盤(pán)

2臺(tái)producer

2臺(tái)consumer

1.2? 硬件配置

CPU??兩顆x86_64cpu,每顆cpu12核,共24核

內(nèi)存?48G

網(wǎng)卡?千兆網(wǎng)卡

磁盤(pán)?除broker機(jī)器的磁盤(pán)是RAID10,共1.1T,其他都是普通磁盤(pán)約500G

1.3? 部署結(jié)構(gòu)

橙色箭頭為數(shù)據(jù)流向,黑色連接線為網(wǎng)絡(luò)連接

1.4? 內(nèi)核參數(shù)

broker是一個(gè)存儲(chǔ)型的系統(tǒng),針對(duì)磁盤(pán)讀寫(xiě)有自己的刷盤(pán)策略,大量使用文件內(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è)置? 對(duì)IO讀寫(xiě)要求高的系統(tǒng)

echo?'ulimit?-n?1000000'?>>?/etc/profile

echo?'admin?hard?nofile?1000000'?>>?/etc/security/limits.conf

?

系統(tǒng)I/O調(diào)度算法

deadline

1.5?JVM參數(shù)

采用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?

二?? 性能評(píng)測(cè)

2.1? 評(píng)測(cè)目的

壓測(cè)單機(jī)TPS,評(píng)估單機(jī)容量

2.2? 評(píng)測(cè)指標(biāo)

最高的TPS不代表最適合的TPS,必須在TPS和系統(tǒng)資源各項(xiàng)指標(biāo)之間取得一個(gè)權(quán)衡,系統(tǒng)資源快達(dá)到極限,但尚能正常運(yùn)轉(zhuǎn),此時(shí)的TPS是比較合適的。比如ioutil最好不要超過(guò)75%,cpu?load最好不超過(guò)總的核數(shù)或者太多,沒(méi)有發(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ù)物理讀寫(xiě)大小/秒)

網(wǎng)絡(luò):網(wǎng)卡流量

?

2.3? 評(píng)測(cè)方式

兩臺(tái)producer起等量線程,不間斷的向broker發(fā)送大小為2K的消息,2K消息意味著1000個(gè)字符,這個(gè)消息算比較大了,完全可以滿足業(yè)務(wù)需要。

?

2.4? 評(píng)測(cè)結(jié)果

TPS比較高

??? 經(jīng)過(guò)長(zhǎng)時(shí)間測(cè)試和觀察,單個(gè)borker?TPS高達(dá)16000,也就是說(shuō)服務(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),沒(méi)有發(fā)生一次fullgc,新生代GC回收效率非常高,內(nèi)存沒(mé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)于磁盤(pán)IO和內(nèi)存

??? 平均單個(gè)物理IO耗時(shí)約為0.06毫秒,IO幾乎沒(méi)有額外等待,因?yàn)閍wait和svctm基本相等。整個(gè)測(cè)試過(guò)程,沒(méi)有發(fā)生磁盤(pán)物理讀,因?yàn)槲募成涞年P(guān)系,大量的cached內(nèi)存將文件內(nèi)容都緩存了,內(nèi)存還有非常大的可用空間。

?

系統(tǒng)的性能瓶頸

??? TPS到達(dá)16000后,再就上不去了,此時(shí)千兆網(wǎng)卡的每秒流量約為100M,基本達(dá)到極限了,所以網(wǎng)卡是性能瓶頸。不過(guò),系統(tǒng)的IOUTIL最高已經(jīng)到達(dá)40%左右了,這個(gè)數(shù)字已經(jīng)不低了,所以即使網(wǎng)絡(luò)流量增加,但是系統(tǒng)IO指標(biāo)可能已經(jīng)不健康了,總體來(lái)看,單機(jī)16000的TPS是比較安全的值。

?

?

?

以下是各項(xiàng)指標(biāo)的趨勢(shì) TPS TPS最高可以壓倒16000左右,再往上壓,TPS有下降趨勢(shì) CPU

隨著線程數(shù)增加,最后穩(wěn)定在3左右,對(duì)于總共24核的兩顆CPU,這點(diǎn)load根本不算什么

內(nèi)存
內(nèi)存非常平穩(wěn),總量48G,實(shí)際可用內(nèi)存非常高
沒(méi)有發(fā)生swap交換,不會(huì)因?yàn)轭l繁訪問(wèn)磁盤(pán)導(dǎo)致系統(tǒng)性能顛簸
大量?jī)?nèi)存被用來(lái)作為文件緩存,見(jiàn)cached指標(biāo),極大的避免了磁盤(pán)物理讀

磁盤(pán)吞吐量

隨著線程數(shù)增加,磁盤(pán)物理IO每秒數(shù)據(jù)讀寫(xiě)大約為70M左右 磁盤(pán)IOPS
隨著線程數(shù)增加,磁盤(pán)IOPS大約穩(wěn)定在5000左右
注意非常重要的細(xì)節(jié),即使在高達(dá)16000TPS時(shí),磁盤(pán)仍然沒(méi)有發(fā)生物理讀,這和內(nèi)存的cached指標(biāo)是遙相呼應(yīng)的,文件幾乎全部在內(nèi)存里,沒(méi)有發(fā)生一次物理讀,所以文件讀的效率非常高,消息消費(fèi)非常快 IO百分比 隨著線程數(shù)增加,IO百分比最后穩(wěn)定在40%左右,這個(gè)數(shù)字可以接受 網(wǎng)絡(luò) 系統(tǒng)使用的千兆網(wǎng)卡,理論傳輸最大值為128M/秒,實(shí)際能達(dá)到100M就不錯(cuò)了。從圖中可以看到,不斷往上壓請(qǐng)求,但是網(wǎng)卡流量已經(jīng)上不去了

轉(zhuǎn)載于:https://www.cnblogs.com/AmilyWilly/p/8026994.html

總結(jié)

以上是生活随笔為你收集整理的RocketMQ性能压测分析(转载)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。