为什么kafka消费者客户端压缩none cpu使用量比压缩msgpack内容中的snappy多?

c7rzv4ha  于 2021-06-05  发布在  Kafka
关注(0)|答案(0)|浏览(391)

我正在用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() .

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题