Logstash在Ubuntu20下CPU占用异常过高问题咨询
解决Ubuntu20下默认配置Logstash CPU占用100%的问题
1. 清理默认配置目录
Logstash默认会加载/etc/logstash/conf.d/下的所有文件,哪怕是空配置也可能触发异常调度。先备份并清空该目录:
sudo mkdir -p /tmp/logstash-conf-backup sudo mv /etc/logstash/conf.d/* /tmp/logstash-conf-backup/ sudo systemctl restart logstash
观察CPU占用是否回落。
2. 优化JVM堆内存配置
编辑/etc/logstash/jvm.options,根据8核机器调整堆内存和GC参数:
# 堆内存设为物理内存的40%-50%,8核机器建议4G -Xms4g -Xmx4g # GC优化参数 -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=2
保存后重启服务:
sudo systemctl restart logstash
3. 限制Pipeline线程数
编辑/etc/logstash/logstash.yml,调整线程和批量处理参数,避免线程竞争:
# 线程数设为CPU核心数的一半,8核机器设4 pipeline.workers: 4 pipeline.batch.size: 128 pipeline.batch.delay: 50
重启Logstash生效。
4. 排查异常线程
用htop定位占用CPU最高的Logstash线程,再导出线程栈分析:
# 获取Logstash进程ID pid=$(pgrep -f logstash) # 导出线程栈到日志 jstack $pid > /tmp/logstash-threads.log
查看日志中是否存在无限循环、阻塞的线程,定位具体异常点。
内容的提问来源于stack exchange,提问作者Ashok
相关产品推荐
相关产品推荐

