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
| 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
网硕互联帮助中心




评论前必须登录!
注册