Performance Tuning

Memory

# celeborn-env.sh export CELEBORN_MASTER_MEMORY=4g export CELEBORN_WORKER_MEMORY=2g export CELEBORN_WORKER_OFFHEAP_MEMORY=8g # JVM GC tuning export CELEBORN_MASTER_JAVA_OPTS="-XX:+UseG1GC -XX:MaxGCPauseMillis=200" export CELEBORN_WORKER_JAVA_OPTS="-XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:MaxDirectMemorySize=8g"

Buffer Tuning

celeborn.worker.flusher.buffer.size=256k # Local disk celeborn.worker.flusher.hdfs.buffer.size=4m # HDFS (must be >= 4 MB) celeborn.worker.flusher.s3.buffer.size=6m # S3

Threading

# Partition sorting and commit (increase for HDFS/S3) celeborn.worker.sortPartition.threads=64 celeborn.worker.commitFiles.threads=128 # Network and RPC celeborn.data.io.threads=32 celeborn.rpc.dispatcher.numThreads=32

Network

# High throughput: increase connections per peer celeborn.data.io.numConnectionsPerPeer=16 celeborn.client.push.maxReqsInFlight=128 # Timeouts (increase for large shuffles or slow storage) celeborn.rpc.askTimeout=240s celeborn.worker.commitFiles.timeout=240s

Spark Client Tuning

# Hash writer: better for moderate partition counts spark.celeborn.client.spark.shuffle.writer=hash spark.celeborn.client.push.buffer.max.size=64k # Sort writer: better for very high partition counts (> 100k) spark.celeborn.client.spark.shuffle.writer=sort # Disable local shuffle reader for consistent performance spark.sql.adaptive.localShuffleReader.enabled=false


  Last updated