From e480d69cbd1a42e492b46e6936496304ec2d5b2d Mon Sep 17 00:00:00 2001 From: Julien Cuquemelle Date: Thu, 30 Nov 2017 16:28:06 +0000 Subject: [PATCH] [SPARK-22683][DOC] document tasksPerExecutorSlot parameter --- docs/configuration.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/configuration.md b/docs/configuration.md index c39c7580fd75a..081704f0fe061 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1584,6 +1584,7 @@ Apart from these, the following properties are also available, and may be useful spark.dynamicAllocation.minExecutors, spark.dynamicAllocation.maxExecutors, and spark.dynamicAllocation.initialExecutors + spark.dynamicAllocation.tasksPerExecutorSlots @@ -1628,6 +1629,19 @@ Apart from these, the following properties are also available, and may be useful Lower bound for the number of executors if dynamic allocation is enabled. + + spark.dynamicAllocation.tasksPerSlot + 1 + + Each executor can process a certain number of tasks in parallel (task slots). + The number of task slots per executor is: executor.cores / task.cpus. + The ExecutorAllocationManager will set a target number of running executors equal to: + nbCurrentTask / (taskSlots * tasksPerSlot), with nbCurrentTask being the total number + of running and backlogged tasks. With the default value of 1, each available task slot + will compute a single task in average, which gives the best latency. With small tasks + however, this setting wastes a lot of resources due to executor allocation overhead + + spark.dynamicAllocation.schedulerBacklogTimeout 1s