3.2 Nitro Configuration File
The nitro.cfg file is available to system administrators.
Nitro looks for this configuration file in the /opt/nitro/etc directory, which must be a peer to the /opt/nitro/bin directory. If found, Nitro will load configuration options specified in the nitro.cfg file.
3.2.1 nitro.cfg Configuration Options
These configuration options are available to customize the nitro.cfg file:
- assignment-size <size> – Sets the default assignment size. Valid values are 0 - 1000. 0 is the default, and allows the coordinator to automatically determine the assignment size based on the assignment duration.

There is also an "--assignment-size" command line option, that if set, overrides the <size> specified here (nitro.cfg file).
- coord-threads <count> – Indicates to the coordinator how many threads to reserve for the coordinator when allocating cores to a local worker (when using "‑‑run-local‑worker" on the coordinator command line). Default is 2. Adaptive Computing recommends setting the <count> value to 1 if all jobs will use less than 20 hosts and setting the <count> value to 4 if the jobs require a large number of hosts (greater than 50) to run.

There is also a "--coord-threads" command line option, that if set, overrides the <count> specified here (nitro.cfg file).
- default-shell <shell path> – Allows the configuration of the default shell used by Nitro to launch tasks. The default value is "/bin/bash". In high throughput usages where many very small tasks need to be launched as quickly as possible, it may be beneficial to use a more compact shell such as the Bourne shell or Korn shell. To set this value, specify the fully qualified path to the shell such as "/bin/sh".
- default-shell-command <command> – Allows configuration of the command line parameter to the shell that Nitro uses when launching a task. The default shell command is "-c" so that Nitro will execute "/bin/bash -c <task command line>". Set this value if you need to customize the launch command or are using a shell that uses a different command line option to launch a command line.
- disable-affinity – Instructs the workers that they should not track and set the task's affinity.

There is also a "--disable-affinity" command line option, that if set, overrides the setting here (nitro.cfg file).
- max-cpu-threshold <value> – Causes Nitro to reduce task threads when the threshold is reached. The <value> is a percentage of system load, where 100% is equivalent to the number of cores in the node and is measured by the 60 second load average.
- maxtime-limit <period> – Lets you set the maxtime option's upper limit for all Nitro job task definitions. If this option is not specified, the coordinator will use its default of 1 day (86400 seconds). This value can be specified as a number of seconds, or by using the Days:Hours:Minutes:Seconds format (ie: 7:0:0:0 = 7 days).
- min-memory-threshold <threshold MB> – If set to a value other than 0 (zero), causes Nitro to check the workers available physical memory before starting tasks. If the available physical memory drops below this value, Nitro will stop running tasks until available memory rises above the threshold. This can be used to throttle tasks or account for background activity that is consuming memory and causing the system to swap memory to disk. It is important to select a threshold that will allow the system to throttle before swapping starts to happen. 2GB (2000MB) is a good threshold to start with.
- throttle-period <period> – Sets the amount of time (in seconds) that Nitro will wait before checking for throttling conditions (such as the memory threshold). Nitro defaults to checking every 2 seconds. Setting this to 0 (zero) causes Nitro to check when tasks complete, or 1 second whichever comes first.
- task-output-limit <value> – Sets the number of bytes that will be captured by stdout and stderr (each) and written to the task log file. The default value is 512 bytes. Nitro captures the stdout and stderr strings output by tasks, but only retains the last n characters as set by the limit to reduce communication and storage overhead.