云计算百科
云计算领域专业知识百科平台

Apache Seatunel JVM 内存配置说明

Seatunel JVM 内存配置说明

相关配置文件:

cd /data/apache-seatunnel-2.3.12/config
# ls -l jvm*
-rw-r–r– 1 root root 907 Nov 9 2023 jvm_client_options
-rw-r–r– 1 root root 966 Nov 9 2023 jvm_master_options
-rw-r–r– 1 root root 966 Nov 9 2023 jvm_options
-rw-r–r– 1 root root 966 Nov 9 2023 jvm_worker_options

1. 四个文件的实际配置

你这 4 个文件实际上分成两类。

jvm_client_options

-Xms256m
-Xmx512m

这是 SeaTunnel Client 的 JVM。

也就是你执行:

./bin/seatunnel.sh –config xxx.conf

时,客户端进程使用的内存。

它目前:
初始 Heap:256 MB
最大 Heap:512 MB

这个一般不需要很大。

jvm_master_options

目前:

-Xms2g

-Xmx2g

被注释了。

所以实际上没有设置 Heap 大小。

同时:

-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/tmp/seatunnel/dump/zeta-server
-XX:MaxMetaspaceSize=2g
-XX:+UseG1GC
是有效的。

jvm_worker_options
和 Master 基本一样:

-Xms2g

-Xmx2g

也是被注释的。

所以 Worker 目前也没有显式设置:

-Xms
-Xmx

jvm_options

这个是你当前最重要的文件。

内容:

-Xms2g

-Xmx2g

也是注释状态。

而你的 seatunnel-cluster.sh 默认:

NODE_ROLE=“master_and_worker”

因此它读取的就是:

/data/apache-seatunnel-2.3.12/config/jvm_options

2. 四个文件可以这样理解

SeaTunnel

┌──────────┴──────────┐
│ │
Client Engine
│ │
jvm_client_options ┌──────┴──────┐
│ │
Master Worker
│ │
jvm_master_options jvm_worker_options

master + worker

jvm_options

文件当前 Heap用途
jvm_client_options 256M → 512M SeaTunnel 客户端
jvm_master_options JVM 默认 独立 Master
jvm_worker_options JVM 默认 独立 Worker
jvm_options JVM 默认 Master + Worker,同一进程

3. 你现在应该修改哪个?

/data/apache-seatunnel-2.3.12/config/jvm_options

因为你当前:
NODE_ROLE=“master_and_worker”

而不是:

./bin/seatunnel-cluster.sh -r master
或者
./bin/seatunnel-cluster.sh -r worker

4. 例如给当前 SeaTunnel Engine 4GB

vi /data/apache-seatunnel-2.3.12/config/jvm_options

-Xms2g

-Xmx2g

改成
-Xms2g
-Xmx4g

最终:

JVM Heap

-Xms2g
-Xmx4g

JVM Dump

-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/tmp/seatunnel/dump/zeta-server

Metaspace

-XX:MaxMetaspaceSize=2g

G1GC

-XX:+UseG1GC

赞(0)
未经允许不得转载:网硕互联帮助中心 » Apache Seatunel JVM 内存配置说明
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!