---
title: Kafka参数配置
description: "Kafka为IO型组件，需要调整broker处理消息及磁盘IO的线程数，根据实际场景选择是否使用压缩算法及使用何种压缩算法，同时注意结合磁盘数量设置Kafka的partition数量。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengbds/ecosystemEnable/Kafka/kunpengkafkahdp_05_0016.html
sourcePath: /source/zh/kunpengbds/ecosystemEnable/Kafka/kunpengkafkahdp_05_0016.html
indexId: 50e47cb574a37a5b5ea99318f8d3d8f6174e00a247a5b2e5b15b97961394f6c172
---
# Kafka参数配置

#### 目的

Kafka为IO型组件，需要调整broker处理消息及磁盘IO的线程数，根据实际场景选择是否使用压缩算法及使用何种压缩算法，同时注意结合磁盘数量设置Kafka的partition数量。


#### 方法

在Kafka服务的Web界面搜索以下参数并修改：


| 参数 | 建议值 | 描述 |
| --- | --- | --- |
| num.network.threads | 128 | broker处理消息的最大线程数，主要处理网络IO，读写缓冲区数据。由于当前Kafka主要是网络瓶颈，所以该参数影响特别大。该参数默认值为3，此时对Kafka性能有决定性影响，当不断调大此参数时，性能会有比较大的提升。该参数的建议值是核数+1，但实际由于网卡瓶颈，该参数调到一定程度后对性能几乎没有影响。为了方便调试，我们可以直接将该参数定为核数+1甚至定为最大值（128）。 |
| num.io.threads | 65 | 在当前Kafka环境中，网络已成为主要瓶颈，因此Broker处理磁盘IO的线程数对整体性能影响较小。目前典型情况下，单个Broker部署了23块SAS硬盘，单盘性能较强。实际上，仅需3～4块盘就能将网络带宽充分利用至极限，因此理论上调整磁盘IO线程数对整体性能提升作用有限。该参数默认值为8，最大可调至256。 |
| compression.type | 根据实际场景调整。 | Kafka压缩算法选择。可以配置为producer（由client生产者决定）、None（不压缩）、gzip、Snappy、lz4。实测几种压缩算法lz4与Snappy表现较好，gzip尽量不选择。但在大多数场景下，还是不压缩更加有优势。压缩算法有时候是双刃剑，并不一定能带来比较好的收益，需要在系统场景中综合考虑使用。 |
| Partitions | 根据磁盘数量调整，一般为磁盘的1～2倍。 | Kafka topic的分区数，该参数与topic强相关，即Kafka数据保存的分区数目，一般要比盘总数大，以保证每个盘都有IO读写。但实际情况硬盘IO没有瓶颈，所以请根据实际情况调整参数。 |
