我正在用msgpack内容测试kafka消费者的不同压缩方法。
我得到的结果如下:
Compress type Consumer Qps CPU Ten thousand message CPU costs
msgpack+none 15000 13.4% 8.9% (13.4 / 15000 * 10000)
msgpack+snappy 29700 21.5% 7.2% (21.5 / 29700 * 10000)
我想知道为什么一万个消息的cpu花费msgpack+不超过msgpack+snappy。
我得到了火焰图,我发现了 GCTaskThread::run()
以及 CompileBroker::compiler_thread_loop()
成本更高 none
压缩类型。
msgpack+无:
消息包+快照:
我在客户端获取不同压缩类型的gc日志:
Compress type GC times every minutes Stop time every minutes
none 128 0.55s
snappy 43 0.2s
使用者客户端配置(scala代码的一部分):
def getConsumerProperties(servers: String, groupId: String): Properties = {
val props = new Properties()
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, servers)
props.put(ConsumerConfig.GROUP_ID_CONFIG, groupId)
props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false")
props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, Integer.valueOf(30000))
props.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, Integer.valueOf(3000))
props
}
服务器配置:
compression.type=producer
问题:
我想知道为什么Kafka消费者客户端压缩无cpu使用比压缩snappy。
我不知道为什么 GCTaskThread::run()
以及 CompileBroker::compiler_thread_loop()
成本更高 none
压缩。
我想知道是什么 CompileBroker::compiler_thread_loop()
.
暂无答案!
目前还没有任何答案,快来回答吧!