NIFI的性能调优
这里只考虑NIFI自身的参数,不考虑操作系统的参数配置。
基于NIFI1.28。
1.增加内存:增加JVM内存分配,以减轻I/O压力。例如,调整bootstrap.conf中的内存设置:
java.arg.2=-Xms8g
java.arg.3=-Xmx8g
2.分离存储设备
关键:将 provenance_repository、content_repository 和 flowfile_repository 分别挂载到独立的物理磁盘或 SSD 上,避免 I/O 竞争。
配置示例(nifi.properties):
nifi.provenance.repository.directory=/mnt/ssd/provenance
nifi.content.repository.directory.default=/mnt/hdd/content
使用这种方式可以将内容库保存至多个目录
nifi.content.repository.directory.content1=/repos/content1
nifi.content.repository.directory.content2=/repos/content2
3.平衡 NiFi 内存使用和磁盘 I/O 的关键参数。当队列中的 FlowFile 数量超过此阈值时,NiFi 会将部分 FlowFile 元数据和内容交换到磁盘,以释放内存。这有助于:,防止内存溢出(OOM);控制队列内存使用上限。
内存充足时,可以增大该值。
nifi.queue.swap.threshold=800000
4.各处理器根据具体情况进行调优。