-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
replica leader follower sync throughput per partition #1516
Comments
所以可否給一個結論?例如在平行度只有1的狀況下,要達到提升 fetch 的速度要如何調整哪些參數 |
|
寫得很好,可否讓我們延伸這個價值 寫一份 kafka Q&A 把這個觀察到的現象寫上去?這樣之後的人都可以排除這個問題 |
#1518 中我有提問說現在究竟是 |
@chia7712 更新了一下,麻煩再看一次,感謝! |
描述中的表格中的 另外假如 |
data path migrate time: data path之間的搬移時間
上面migrate rate指的是data folder間的搬移,所以沒有影響,調整 |
在進行實驗時發現一個現象,每個replica follower在跟replica lleader拉資料時(包含replication與reassign),會沒辦法用滿I/O頻寬,大概每個partition寫入最高速度只有200MB/s,如下圖
後來發現可以透過調整server端的config: replica.socket.receive.buffer.bytes 來改善這個狀況,如下圖
將replica.socket.receive.buffer.bytes設定成-1(由os決定receive buffer size)
為了更進一步調查這個問題做了一些實驗來確認同一個broker中的data folder搬移或是consumer的讀取是否也有這樣的狀況
使用預設的 replica.socket.receive.buffer.bytes
更改replica.socket.receive.buffer.bytes=-1
結論
這邊我發現不論有沒有更改 replica.socket.receive.buffer.bytes,consumer的效能都不是很好,data path間的搬移則是幾乎都可以全力搬移,所以後面有去試著改consumer的config來讓consumer可以在一個合理的速度(I/O頻寬上限)做poll資料
使用預設的replica.socket.receive.buffer.bytes 且同時更改consumer的receive.buffer.bytes=-1
結論
經過上面這些實驗,可以發現server端的replica.socket.receive.buffer.bytes,似乎與consumer的效能或data path間的搬移速度沒有直接的關係,cosumer處理的速度似乎還是要看consumer自己的buffer size,而不是server端的replica receive buffer size
The text was updated successfully, but these errors were encountered: