私のカフカバージョンは0.10.2.1です。 私のサービスは本当にqps(1msg/sec)が低いです。そして、私たちのrttの要件は本当に厳格です。 (99.9%< 30ms) 現在、カフカが長時間(15日程度)実行されると、パフォーマンスが低下する問題が発生しました。 2017年10月21日はカフカレイテンシ最適化
Time . num of msgs . percentage
cost<=2ms 0 0.000%
2ms<cost<=5ms 12391 32.659%
5ms<cost<=8ms 25327 66.754%
8ms<cost<=10ms 186 0.490%
10ms<cost<=15ms 24 0.063%
15ms<cost<=20ms 2 0.005%
20ms<cost<=30ms 0 0.000%
30ms<cost<=50ms 4 0.011%
50ms<cost<=100ms 1 0.003%
100ms<cost<=200ms 0 0.000%
200ms< cost<=300ms 6 0.016%
300ms<cost<=500ms 0 0.000%
500ms<cost<=1s 0 0.000%
cost>1s 0 0.000%
のようだった。しかし、最近、それはなった:
cost<=2ms 0 0.000%
2ms<cost<=5ms 7592 29.202%
5ms<cost<=8ms 17470 67.197%
8ms<cost<=10ms 698 2.685%
10ms<cost<=15ms 143 0.550%
15ms<cost<=20ms 23 0.088%
20ms<cost<=30ms 19 0.073%
30ms<cost<=50ms 11 0.042%
50ms<cost<=100ms 5 0.019%
100ms<cost<=200ms 11 0.042%
200m s<cost<=300ms 26 0.100%
300ms<cost<=500ms 0 0.000%
500ms<cost<=1s 0 0.000%
cost>1s 0 0.000%
私はログを確認すると、私は特定のメッセージを持っている理由をチェックする方法が表示されません高いrtt。そして
ブローカーとクライアントの設定を共有できますか?クライアントの再起動後、パフォーマンスは向上しますか? –
num.network.threads = 3 num.io.threads = 10 message.max.bytes = 10000120 replica.fetch.max.bytes = 10000120 min.insync.replicas = 2 connections.max.idle.ms = 86400000 leader.imbalance/home/disk1/kafka、/ home/disk2/kafka、/ home/disk3/kafka、/ home/ssd1/kafka、/h ome/ssd2/kafka num.partitions = 20 num.recovery.threads.per.data.dir = 2 num.replica.fetchers = 3 default.replication.factor = 3 unclean.leader.election.enable = false – user2283216
それを除いて、クライアント側ではrequired.acksは常に-1に設定され、My 3ブローカーは3つの異なるデータセンターにありますが、ある都市では2つの間の平均pingは約1.5msです – user2283216