For basic tuning guidance for MiddleManager tasks, see Basic cluster tuning.
Peons run a single task in a single JVM. MiddleManager is responsible for creating Peons for running tasks. Peons should rarely (if ever for testing purposes) be run on their own.
The Peon should very rarely ever be run independent of the MiddleManager unless for development purposes.
org.apache.druid.cli.Main internal peon <task_file> <status_file>
The task file contains the task JSON object. The status file indicates where the task status will be output.