저는 EKS에서 Fargate를 사용하여 Spark를 실행하고 있습니다.
하지만 Spark executor의 메모리가 항상 제 예상과 다르게 설정되는 이유를 잘 이해하지 못하겠습니다.
아래와 같이 설정했을 때:
ini
CopyEdit
spark.executor.memory = 6g
executor-cores = 2
spark.executor.memoryOverhead = 0.10
spark.memory.offHeap.size = 0
Spark executor pod의 리소스 제한은 실제로 8601Mi로 설정됩니다.
하지만 계산상 (6144 * 0.10) + 6144 = 6,758.4인데, 추가로 1,842.6Mi가 어디에서 오는지 모르겠습니다.
spark-submit 매개변수를 아래와 같이 바꾸면:
ini
CopyEdit
spark.executor.pyspark.memory = 1g
spark.executor.memory = 6g
spark.executor.memoryOverhead = 0.10
spark.memory.offHeap.size = 0
Spark executor pod의 리소스 제한은 9625Mi로 나타납니다.
계산해 보면: 9625 - ((6144*0.10)+6144+1024) = 1,842.6
즉, Spark executor에 할당하는 메모리가 커질수록 이 차이도 더 커집니다.