由于最近項(xiàng)目要上騰訊云,不得不對(duì)騰訊云CKafka進(jìn)行壓測(cè),評(píng)估kafka的處理性能是罩沒(méi)簡(jiǎn)否滿足項(xiàng)目需求。(項(xiàng)目期望Kafka能夠處理上千萬(wàn)級(jí)別的MQ)
武強(qiáng)ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書(shū)合作)期待與您的合作!
一、 明確測(cè)試目的
本次性能測(cè)試在UAT環(huán)境下騰訊云服務(wù)器上CKafka處理MQ消息能力進(jìn)行壓力測(cè)試。測(cè)試包括對(duì)Kafka寫(xiě)入MQ消息和消費(fèi)MQ消息進(jìn)行壓力測(cè)試,根據(jù)100w、500w和1000w級(jí)別的消息處理結(jié)果,評(píng)估Kafka的處理性能極限值。
二、 Kafka測(cè)試前期準(zhǔn)備
2.1? Kafka的性能測(cè)試主要測(cè)試kafka的吞吐量,kafka吞性能為生產(chǎn)者在向kafka傳入消息時(shí)的寫(xiě)入量,kafka的吐性能為消費(fèi)者在kafka集群中消費(fèi)的能力,也就是讀取量。
2.2 Borker相關(guān)
? ? Kafka的borker是kafka集群的緩存代理,消息中間件處理結(jié)點(diǎn),一個(gè)Kafka節(jié)點(diǎn)就是一個(gè)broker,多個(gè)broker可以組成一個(gè)Kafka集群。具體可參考kafka官方文檔。
2.3 Cousumer相關(guān)
察前 ? ?Consumer為kafka的消費(fèi)者,同一個(gè)topic消費(fèi)者越多越快,但是需要注意的是,消費(fèi)者的數(shù)量不能超過(guò)topic的分區(qū)數(shù)量,因?yàn)槊總€(gè)topic的每個(gè)分區(qū)只能被一個(gè)消費(fèi)者消費(fèi),多出來(lái)的消費(fèi)者會(huì)無(wú)信息可消費(fèi)。導(dǎo)致資源浪費(fèi)。具體可參考騰訊云Ckafka指南。
三、Kafka常用參數(shù)配置
3.1 生產(chǎn)端常用參數(shù)配置如下:
消費(fèi)者參數(shù)配置如下:
Broker 配置參數(shù)說(shuō)明如下:
四、場(chǎng)景設(shè)計(jì)
4.1 Kafka寫(xiě)入消息壓力測(cè)試
4.2 Kafka消費(fèi)壓測(cè)測(cè)試
五、測(cè)試方法
5.1?在服務(wù)器上使用Kafka自帶的測(cè)試腳本,分別模擬100w、500w和1000w的消息寫(xiě)入請(qǐng)求,查看Kafka處理不同數(shù)量級(jí)的消息數(shù)時(shí)的處理能力,包括每秒生成消息數(shù)、吞吐量、消息延遲時(shí)間。Kafka消息吸入創(chuàng)建的topic命名為test-2,使用命令發(fā)起消費(fèi)該topic的請(qǐng)求,查看Kafka消費(fèi)不同數(shù)量級(jí)別的消息時(shí)的處理能力。
5.2 壓測(cè)命令(腳本執(zhí)行目錄:bin/)
? ? ? ? zookeeper腳本:./kafka-consumer-perf-test.sh --zookeeper IP:port --topic forbid_resources_topic --fetch-size 1048576 --messages 10000 --threads 1
寫(xiě)入腳本命令的參數(shù)解析:
消費(fèi)腳本參數(shù)解析:
六、測(cè)試結(jié)果
寫(xiě)入100W結(jié)果:
消費(fèi)100W結(jié)果:
注意:這里的坑就來(lái)了實(shí)際消費(fèi)數(shù)量與腳本設(shè)置的消費(fèi)數(shù)量不一致,在這里的這個(gè)問(wèn)題查了物褲很多資料發(fā)現(xiàn)兩個(gè)問(wèn)題,一會(huì)下面慢慢解釋,先來(lái)看每個(gè)字段的意思。
我們先來(lái)看看消費(fèi)的每個(gè)數(shù)據(jù)字段的含義,如下圖:
上圖我們可以看出,data.consumed.in.nMsg(總消費(fèi)消息數(shù))與腳本中messages設(shè)置的值不一致;設(shè)置消費(fèi)100W,實(shí)際消費(fèi)121431條消息。
坑就在這里,由于是買的騰訊云的PASS服務(wù),很多東西都沒(méi)辦法獲取權(quán)限查看,只能一步步和客服溝通,挨個(gè)排查。
騰訊售后客服也給發(fā)了案例和教程,發(fā)現(xiàn)教程里也是實(shí)際消費(fèi)和設(shè)置消費(fèi)數(shù)不一致;,此處省略一萬(wàn)字。。。
最終在無(wú)意之間更改了Topic分區(qū)數(shù)之后再次運(yùn)行腳本發(fā)現(xiàn)問(wèn)題消失了,測(cè)試環(huán)境的Topic分區(qū)設(shè)置為1,后續(xù)增加分區(qū)數(shù)發(fā)現(xiàn)能實(shí)際消費(fèi)和設(shè)置消費(fèi)消息數(shù)一致。最后經(jīng)過(guò)多次測(cè)試最終Topic分區(qū)數(shù)設(shè)置為3。這次之后發(fā)現(xiàn)忽略了騰訊云提供的壓測(cè)指南中的底部有幾句話;
在多次和騰訊售后客服溝通和交流,后續(xù)也有和騰訊相關(guān)后端開(kāi)發(fā)溝通,發(fā)現(xiàn)竟然連開(kāi)發(fā)都解釋不清楚出現(xiàn)這個(gè)問(wèn)題的原因,只要深入了解,就會(huì)含糊解釋說(shuō):“我們賣了這么多產(chǎn)品,Kafka肯定不會(huì)有問(wèn)題的”,其內(nèi)部也沒(méi)有關(guān)于Kafka相關(guān)的壓測(cè)分析案例??赡苁俏夜崖劊诖擞涗?,也是分享出此次壓測(cè)的踩坑經(jīng)歷。
測(cè)試方法:
1、 dd bs=64k count=4k if=/dev/zero of=test
沒(méi)有加任何參數(shù),dd默認(rèn)的方式不包括“同步(sync)”命令。也就胡盯是說(shuō),dd命令完成前并沒(méi)有讓系統(tǒng)真正把文件寫(xiě)到磁盤上。所以以上命令只是單純地把這128MB的數(shù)據(jù)讀到內(nèi)存緩沖當(dāng)中(寫(xiě)緩存[write cache])。所以你得到的將是一個(gè)超級(jí)快的速度。因?yàn)槠鋵?shí)dd給你的只是讀取速度,直到dd完成后系統(tǒng)才開(kāi)始真正往磁盤上寫(xiě)數(shù)據(jù),但這個(gè)速度你是看不到了。所以如果這個(gè)速度很快,沒(méi)有什么作用。
2、dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
加入這個(gè)參褲橡和數(shù)后,dd在執(zhí)行時(shí)每次都會(huì)進(jìn)行同步寫(xiě)入操作。也就是說(shuō),這條命令每次如舉讀取64k后就要先把這64k寫(xiě)入磁盤,然后再讀取下面這64k,一共重復(fù)128次。這可能是最慢的一種方式了,因?yàn)榛旧蠜](méi)有用到寫(xiě)緩存(write cache)。這種方法是最嚴(yán)格的,可以模擬數(shù)據(jù)庫(kù)的插入操作,所以很慢,也是用來(lái)測(cè)試vps硬盤性能標(biāo)準(zhǔn)的一條標(biāo)桿,一般來(lái)說(shuō)測(cè)試結(jié)果,如果超過(guò)10M,對(duì)正常建站就無(wú)影響。超過(guò)50M,就是非常給力狀態(tài)。
騰訊云
[root@VM_37_104_centos ~]# time dd if=/dev/zero of=test.dbf bs=8k count=300000
300000+0 records in
300000+0 records out
2457600000 bytes (2.5 GB) copied, 9.98703 s, 246 MB/s
real 0m10.027s
user 0m0.071s
sys 0m4.413s
[root@VM_37_104_centos ~]# time dd if=/dev/zero of=test bs=64k count=16k oflag=dsync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 20.3013 s, 52.9 MB/s
real 0m20.308s
user 0m0.014s
sys 0m2.724s
天互數(shù)據(jù) 為你解答,希望能幫到你
相信你也經(jīng)常遇到云服務(wù)器無(wú)法訪問(wèn)的搭滲御問(wèn)題?
也會(huì)遇到服務(wù)器丟包,數(shù)據(jù)加載慢的問(wèn)題?
阿里云、騰訊云和華為云三大知名云計(jì)算廠家的網(wǎng)絡(luò)情況怎么樣?
要判斷一個(gè)云服務(wù)的網(wǎng)絡(luò)情況好壞又應(yīng)該從哪些方面考慮呢?
面對(duì)以上疑問(wèn)?一起來(lái)看一下阿里云、騰訊云和華為云的云服務(wù)器網(wǎng)絡(luò)能力哪家強(qiáng)。
一、阿里云、騰訊云喊搜和華為云的運(yùn)營(yíng)商內(nèi)網(wǎng)間TCP帶寬性能測(cè)試華為云400Mbps,阿里云在280Mbps左右,騰訊云優(yōu)勢(shì)較大,達(dá)到1100Mbps。
云服務(wù)器
二、在都開(kāi)放了16001-16008端口的情況下,華為云S6內(nèi)網(wǎng)PPS測(cè)試結(jié)果達(dá)到25萬(wàn),阿里云15萬(wàn),騰訊云知巖S2在45萬(wàn)至51萬(wàn)之間。
三、三大服務(wù)器的外網(wǎng)主機(jī)連通性表現(xiàn)基本相同,國(guó)內(nèi)地區(qū)服務(wù)器響應(yīng)速度在60ms左右,海外地區(qū)響應(yīng)速度在130ms左右。
四、上傳下載能力對(duì)比,同樣下載100MB大小的文件,華為云耗時(shí)120s,騰訊云162s,阿里云154s。
希望本篇回答可以幫助到你
望采納~