终于找到根本原因了!!!!!
logstash部署到k8s集群内部的,当所在节点的CPU资源被其他应用抢占时,logstash的处理速度就会降低
问题现象
logstash从kafka读取和写入文件的速度非常慢,怎么调qps都在0K-2K之间徘徊
问题排查过程
1.开始怀疑资源使用问题,但是调整资源限制后,qps并没有升高
2.增加logstash的数量,调大后qps没有变化,因为kafka集群只有3个节点,一个logstash节点就已经连接了3个kafka节点,再多的logstash也无法建立更多的连接,所以qps数量无法升高
3.调大-w 参数(调整运行 filter 和 output 的 pipeline 线程数量,默认是 CPU 核数)调整后qps仍然没有变化
4.调大 -b 参数(每个 Logstash pipeline 线程,在执行具体的 filter 和 output 函数之前,最多能累积的日志条数。默认是 125 条。越大性能越好,同样也会消耗越多的 JVM 内存),调大后发现qps没有升高,甚至有所下降。
5.突然想到如果调低-b 参数的值会怎么样呢,发现调低到500左右时,qps开始升高,最后调整到-w 40 -b 40 ,qps升高到8K,峰值能达到16K,满足需求
根因分析
待分析...怀疑可能是一次获取的日志太多,影响了整体的速度