kafka性能調(diào)優(yōu)解密(一)-- Broker端

      網(wǎng)友投稿 2655 2022-05-28

      Broker篇

      1????? 網(wǎng)絡(luò)模型3個相關(guān)參數(shù)

      參數(shù)

      默認值

      推薦值

      說明

      num.network.threads

      3

      默認值

      server用來處理網(wǎng)絡(luò)請求的網(wǎng)絡(luò)線程數(shù)目;一般你不需要更改這個屬性。

      num.io.threads

      8

      默認值

      server用來處理請求的I/O線程的數(shù)目;這個線程數(shù)目至少要等于硬盤的個數(shù)。

      queued.max.requests

      500

      默認值

      在網(wǎng)絡(luò)線程停止讀取新請求之前,可以排隊等待I/O線程處理的最大請求個數(shù)。

      Kafka的內(nèi)部結(jié)構(gòu)圖如下:

      Kafka的內(nèi)部結(jié)構(gòu)圖如下:

      其中num.network.threads是控制上圖中的Processor Thread的個數(shù), num.io.threads是控制API Thread的個數(shù),queued.max_requests是控制Request Channel隊列的容量。

      1.? 調(diào)大num.network.threads能夠增加處理網(wǎng)絡(luò)io請求,但不讀寫具體數(shù)據(jù),基本沒有io等待。但如果過大,會帶來線程切換的開銷。

      2.????增大queued.max.requests能夠緩存更多的請求,以撐過業(yè)務(wù)峰值。如果過大,會造成內(nèi)存的浪費。

      kafka性能調(diào)優(yōu)解密(一)-- Broker端

      3.????增大num.io.threads能提升線程處理能力,如果過大會代理線程切換開銷影響處理能力。同時至少要等于硬盤的個數(shù)。

      num.network.threads、num.io.threads和queued.max.requests 這三個參數(shù)是kafka網(wǎng)絡(luò)模型的相關(guān)參數(shù),所以這里一起測試。?模擬一定的壓力,使得API threads線程處理不過來,request channel隊列阻塞,性能開始下降。此時增大queue.max.requests或者增加API threads,查看性能情況

      1G網(wǎng)卡下,10分區(qū),2k數(shù)據(jù),發(fā)送1000000, ack都為1, 3個Producer與3個Consumer一起跑, Consumer每次從隊列開始讀取數(shù)據(jù)

      測試數(shù)據(jù)如下:

      num.network.threads

      num.io.threads

      queued.max.requests

      Producer

      nMsg.sec

      Consumer

      nMsg.sec

      3

      8

      1

      48768.5443

      48985.088

      3

      8

      250

      50942.3841

      52804.523

      3

      8

      500

      51303.0474

      55146.401

      3

      8

      1000

      51956.0971

      54461.271

      3

      1

      1

      50699.6045

      48399.7216

      從queued.max.requests值由1增加到1000,可以看出通過調(diào)大queue個數(shù),性能可以稍稍提高6%左右

      修改num.io.threads個數(shù),性能影響不大。

      10G網(wǎng)卡 下,100分區(qū),2k數(shù)據(jù),發(fā)送1000000, ack都為1, 10個Producer與10個Consumer一起跑, Consumer每次從隊列開始讀取數(shù)據(jù),Producer BatchSize 為512M

      num.network.threads

      num.io.threads

      queued.max.requests

      Producer

      nMsg.sec

      Consumer

      nMsg.sec

      3

      8

      1

      203500.2035

      139385.4383

      3

      8

      1000

      228206.2985

      139567.3412

      50

      8

      1

      187441.4246

      137869.9555

      50

      8

      1000

      229042.6019

      151199.0081

      取queued.max.requests的極端情況分別為1和1000,在不同的壓力下, Producer性能能提升10%。 如果把num.network.threads調(diào)大,這兩者的差距就更大達到22%

      從數(shù)據(jù)得到的結(jié)論:

      1.從上面的測試來看,3個線程的壓力下,就算queued.max.requests設(shè)置為1,broker也能很快處理,不會造成性能劇烈下降。

      2.10G 網(wǎng)卡下, queued.max.requests設(shè)置為1 與設(shè)置為1000比較,能提升22%。

      3.按照目前的壓力來看,用默認值就可以滿足業(yè)務(wù)要求,發(fā)現(xiàn)性能瓶頸可以調(diào)大這三個參數(shù)就可以。

      2 復(fù)制3個相關(guān)參數(shù)

      2.1??????參數(shù)描述

      參數(shù)

      默認值

      推薦值

      說明

      replica.socket.receive.buffer.bytes

      64*1024

      256k~2M

      備份時向leader發(fā)送網(wǎng)絡(luò)請求時的socket receive buffer

      replica.fetch.max.bytes

      1024*1024

      根據(jù)業(yè)務(wù)實際配置

      備份時每次fetch的最大值

      num.replica.fetchers

      1

      默認值

      從leader備份數(shù)據(jù)的線程數(shù)

      1.replica.socket.receive.buffer.bytes: 同TCP buffer的分析,不少于BDP 窗口大小,時延高的可以設(shè)大一點2.replica.fetch.max.bytes:? 不得少于發(fā)往broker消息的最大長度(message.max.bytes),需要根據(jù)業(yè)務(wù)實際消息的大小,然后設(shè)大一點即可。

      3. num.replica.fetchers: 復(fù)制fetch線程設(shè)置大一點可以提升獲取性能,同時增加備機的IO并行性,但設(shè)置太大也沒用反而導(dǎo)致空閑,這個同Consumer的fetch thread一樣。

      在ACK=1的情況下,Produce/Consumer的性能與復(fù)制關(guān)系不是很大,除非受到網(wǎng)絡(luò)的瓶頸。

      2個broker 創(chuàng)建10個分區(qū)的topic,?一定的壓力下,通過調(diào)整這3個參數(shù),檢查性能的變化

      單獨調(diào)大receiver buffer參數(shù):

      replica.socket.receive.buffer.bytes

      replica.fetch.max.bytes s

      num.replica.fetchers

      Producer

      nMsg.sec

      Consumer

      nMsg.sec

      65536

      1048576

      1

      141602.9453

      140684.5711

      262144

      1048576

      1

      143843.5

      136843.83

      2097152

      1048576

      1

      143287

      141113.38

      單獨調(diào)大rep_fetch_max_bytes:

      replica.socket.receive.buffer.bytes

      replica.fetch.max.bytes s

      num.replica.fetchers

      Producer

      nMsg.sec

      Consumer

      nMsg.sec

      65536

      1048576

      1

      141602.9453

      140684.5711

      65536

      4194304

      1

      163345.312

      129623.2285

      65536

      8388608

      1

      148170.0993

      143096.3181

      單獨調(diào)大num.replica.fetchers:

      replica.socket.receive.buffer.bytes

      replica.fetch.max.bytes s

      num.replica.fetchers

      Producer

      nMsg.sec

      Consumer

      nMsg.sec

      65536

      1048576

      1

      141602.9453

      140684.5711

      65536

      1048576

      5

      161733.7862

      142486.6775

      65536

      1048576

      10

      150330.7276

      137249.5196

      分析結(jié)論

      1.?????? 單獨調(diào)這些參數(shù),性能并沒用發(fā)生比較大的變化,因為正常測試存在波動

      2.?????? replica.socket.receive.buffer.bytes?? 跟Consumer的 socket.receiver.buffer.bytes 盡量一致就可以

      3.?????? replica.fetch.max.bytes 根據(jù)業(yè)務(wù)最大消息來配置,稍微大一點就可以了

      4.?????? num.replica.fetchers? 默認1個線程就足夠了,否則復(fù)制會比較占網(wǎng)絡(luò)流量

      3????? TCP相關(guān)參數(shù)

      原理分析和理論指導(dǎo)值同Producer端的TCP參數(shù)。具體參考下篇producer端

      應(yīng)用性能調(diào)優(yōu) Kafka

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:操作系統(tǒng)實現(xiàn)1_bochs 和 nasm 安裝
      下一篇:爬蟲系列:存儲媒體文件
      相關(guān)文章
      亚洲香蕉网久久综合影视| 噜噜噜亚洲色成人网站| 亚洲一区二区三区免费在线观看 | 亚洲国产成人高清在线观看 | 亚洲精品乱码久久久久久V| 亚洲国产精品久久久久婷婷老年| 亚洲国产成人精品女人久久久 | 亚洲另类激情综合偷自拍| 亚洲精品无码永久中文字幕| 人人狠狠综合久久亚洲| 亚洲熟女综合一区二区三区| 亚洲国产品综合人成综合网站| 亚洲高清在线视频| 亚洲AV无码一区二区三区DV| 亚洲色偷偷偷鲁综合| 亚洲熟妇无码八AV在线播放| 日韩色日韩视频亚洲网站| 亚洲人成网站色7799| 亚洲综合色婷婷在线观看| 亚洲人配人种jizz| 中文字幕亚洲情99在线| 亚洲天堂男人影院| 久久亚洲国产成人影院| 亚洲爆乳大丰满无码专区| 亚洲国产精品ⅴa在线观看| 亚洲午夜久久久精品电影院| 久久国产亚洲高清观看| 亚洲国产精品第一区二区 | 国产日产亚洲系列最新| 中文字幕不卡亚洲| 亚洲а∨天堂久久精品| 亚洲av午夜成人片精品电影| 亚洲精品和日本精品| 亚洲日韩国产成网在线观看| 亚洲中文字幕无码日韩| 亚洲国产精品碰碰| 亚洲高清视频一视频二视频三| 中文字幕久久亚洲一区 | 亚洲综合一区国产精品| 亚洲国产AV无码一区二区三区| 亚洲日韩av无码中文|