返回 导航

大数据

hangge.com

Flume日志采集工具使用详解11(内存优化)

作者:hangge | 2024-03-21 09:02

十一、内存优化

1,为何需要调整内存设置?

    因为 Flume 进程也是基于 Java 的,所以就涉及到进程的内存设置,一般建议启动的单个 Flume 进程(或者说单个 Agent)内存设置为 1G ~ 2G,内存太小的话会频繁 GC,影响 Agent 的执行效率。

2,具体设置多少合适?

(1)内存的设置根据 Agent 读取的数据量的大小和速度有关系,所以需要具体情况具体分析。当 FlumeAgent 启动之后,对应就会启动一个进程。首先执行如下命令查看进程 ID
jps -m

(2)然后执行如下命令了查看这个进程 GC 的信息,1000 表示每一秒钟刷新一次。
jstat -gcutil 4169 1000

(3)运行结果如下,在这里主要看 YGC YGCT FGC FGCT GCT
  • YGC:表示新生代堆内存 GC 的次数,如果每隔几十秒产生一次,也还可以接受,如果每秒都会发生一次 YGC,那说明需要增加内存了
  • YGCT:表示新生代堆内存 GC 消耗的总时间
  • FGCFULL GC 发生的次数。注意,如果发生 FUCC GC,则 Flume 进程会进入暂停状态,FUCC GC 执行完以后 Flume 才会继续工作,所以 FUCC GC 是非常影响效率的,这个指标的值越低越好,没有更好。
  • GCT:所有类型的 GC 消耗的总时间

(4)如果 GC 次数增长过快,说明内存不够用。

3,如何调整 Flume 进程内存?

(1)我们编辑 Flumeflume-env.sh 脚本:
vim conf/flume-env.sh

(2)把 export JAVA_OPTS 参数前面的 # 号去掉,并且将其里面的内存设置为需要的大小:
注意:建议这里的 XmsXmx 设置为一样大,避免进行内存交换,内存交换也比较消耗性能。
评论

全部评论(0)

回到顶部