/ntn

Primary LanguageShell

Not Too Nice (NTN)

Is a linux tool that adds alias files for other commands to make them run in very low priority by default. It adds this prefix: chrt -i 0 ionice -c 3 to the command, which means that the command will run on IDLE scheduler policy and on IDLE IO priority. The idle here doesn't mean that the command is idle (not running), it means that the task will be scheduled in IDLE policy which is in the least priority among others.

Why

Because this solution adds 0 overhead to auto down-prioritize tasks while keeping the arguments call the same plus without changing/touching any of the others files.

Adding Example

sudo ntn -a balooctl

This will add /usr/local/bin/balooctl file with the following content:

#!/usr/bin/env bash
chrt -i 0 ionice -c 3 /usr/bin/balooctl "$@"

If you, or the system runs balooctl. Then it will be ran with IDLE sched/io policies.

-a will also try to update the currently running task by its pid automatically.

Remove Example

sudo ntn -r balooctl

Watch tasks policies

ntn -w

TS: means normal policy (i.e. CFS) You will see IDLE instead if the task you're watching is added via ntn

List Added Tasks

ntn -l

Auto Add preconfigured commands

sudo ntn -u

This is like an update, it will go through this list and it adds the command if the command exists.

Thanks