我的kafka版本是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的原因的方法。如果有任何方法可以优化(操作系统调整,代理配置),请赐教我
答案 0 :(得分:1)
如果没有请求处理时间细分,很难说哪个部分可能是您问题的罪魁祸首。更具体地说,您需要连接jmx并检查以下请求级指标:
TotalTimeMs RequestQueueTimeMs LocalTimeMs RemoteTimeMs ResponseQueueTimeMs ResponseSendTimeMs
https://kafka.apache.org/documentation/#monitoring
随着时间的推移检查它们的avg / 99百分位值,看看哪一个导致了性能退化。
答案 1 :(得分:0)
考虑升级到0.11(或1.00),其性能有所提升
优化文章:https://www.confluent.io/blog/optimizing-apache-kafka-deployment/