fix new conf

This commit is contained in:
Alexey Avramov 2019-02-01 13:43:19 +09:00
parent bd313a6952
commit ba2f1ca86b

View File

@ -1,63 +1,102 @@
This is nohang config file.
Lines starting with $ contain obligatory parameters.
Lines starting with @ contain optional parameters.
Other lines are comments.
1. Ignore PSI. This is nohang config file.
Lines starting with $ contain obligatory parameters.
Lines starting with @ contain optional parameters.
Other lines are comments.
1. Ignore PSI and zram.
$IGNORE_PSI = TRUE $IGNORE_PSI = TRUE
$IGNORE_ZRAM = TRUE
2. Poll rate
2. Poll rate
$POLL_RATE = 60 $POLL_RATE = 60
$POLL_RATE_PROPORTIONS = 6:3:1 $MIN_SLEEP = 0.1
$MIN_SLEEP_TIME = 0.1 $MAX_SLEEP = 2
$MAX_SLEEP_TIME = 1
3. SIGKILL-related parameters
$SIGKILL_MIN_MEM = 5 % 3. GUI notifications
$SIGKILL_MIN_SWAP = 5 %
$SIGKILL_MAX_ZRAM = 55 %
$SIGKILL_MAX_PSI_SOME_AVG10 = 90
$DELAY_AFTER_SIGKILL = 0.8
$DELAY_AFTER_AVG10_SIGKILL = 60
4. SIGTERM-related parameters
$SIGTERM_MIN_MEM = 10 %
$SIGTERM_MIN_SWAP = 10 %
$SIGTERM_MAX_ZRAM = 50 %
$SIGTERM_MAX_PSI_SOME_AVG10 = 60
$DELAY_AFTER_SIGTERM = 0.2
$DELAY_AFTER_AVG10_SIGTERM = 40
@EXE_INSTEAD_OF_SIGTERM @CMDLINE_RE foo /// exit 0
@EXE_INSTEAD_OF_SIGTERM @PROCESSNAME_RE foo /// kill -9 $PID
@EXE_INSTEAD_OF_SIGTERM @UID_RE foo /// pkill $NAME
5. GUI nitifications
$GUI_CORRECTIVE_ACTIONS = FALSE $GUI_CORRECTIVE_ACTIONS = FALSE
$GUI_LOW_MEMORY_WARNINGS = FALSE $GUI_LOW_MEMORY_WARNINGS = FALSE
$GUI_WARNINGS_MIN_MEM = 20% $GUI_WARNINGS_MIN_MEM = 20 %
$GUI_WARNINGS_MIN_SWAP = 20% $GUI_WARNINGS_MIN_SWAP = 20 %
$GUI_WARNINGS_MAX_ZRAM = 45 % $GUI_WARNINGS_MAX_ZRAM = 45 %
$GUI_MIN_TIME_BETWEEN_WARNINGS = 15 $GUI_MIN_DELAY_AFTER_WARNING = 15
6. Adjusting badness of processes @EXE_INSTEAD_OF_GUI_WARNING wall -n "LOW MEMORY!"
@EXE_INSTEAD_OF_GUI_WARNING echo 'test'
@EXE_INSTEAD_OF_GUI_WARNING echo 'test2'
@OOM_SCORE_ADJ_LIMIT = 50
@PROCESSNAME_RE -100 /// ^Xorg$
@CMDLINE_RE 300 /// -childID|--type=renderer
@UID_RE -100 /// ^0$
7. Avoiding killing small processes (innocent victims) 4. SIGTERM-related parameters
$MIN_VICTIM_BADNESS = 10 $SIGTERM_MIN_MEM = 10 %
$SIGTERM_MIN_SWAP = 10 %
$SIGTERM_MAX_ZRAM = 50 %
$DELAY_AFTER_SIGTERM = 0.2
8. Verbosity $SIGTERM_MAX_PSI_SOME_AVG10_THRESHOLD = 60
$SIGTERM_MAX_PSI_SOME_AVG10_DURATION = 5
$DELAY_AFTER_SIGTERM_PSI_SOME_AVG10 = 40
The execution of specified command instead of sending a SIGTERM signal.
Syntax example:
<key> <regular expression> /// <command>
@EXE_INSTEAD_OF_SIGTERM_RE_PROCESSNAME ^foo$ /// kill -9 $PID && echo "Praise KEK, kill $NAME" &
@EXE_INSTEAD_OF_SIGTERM_RE_CMDLINE ^/sbin/foo /// systemctl restart foo
@EXE_INSTEAD_OF_SIGTERM_RE_UID ^1000$ /// pkill -SEGV $NAME
@EXE_INSTEAD_OF_SIGTERM_RE_UID ^1001$ /// pkill -HUP $NAME
5. SIGKILL-related parameters
$SIGKILL_MIN_MEM = 5 %
$SIGKILL_MIN_SWAP = 5 %
$SIGKILL_MAX_ZRAM = 55 %
$DELAY_AFTER_SIGKILL = 1
$SIGKILL_MAX_PSI_SOME_AVG10_THRESHOLD = 90
$SIGKILL_MAX_PSI_SOME_AVG10_DURATION = 5
$DELAY_AFTER_SIGKILL_PSI_SOME_AVG10 = 60
6. Adjusting badness of processes
$OOM_SCORE_ADJ_LIMIT = -1
Badness adjusting by matching process name, cmdline and eUID with specified regular expression.
Example badness adj rules
<key> <regular expression> /// <badness_adj>
@BADNESS_ADJ_RE_CMDLINE -childID|--type=renderer /// 200
@BADNESS_ADJ_RE_NAME ^Xorg$ /// -100
@BADNESS_ADJ_RE_UID ^0$ /// -50
7. Avoid killing small processes (innocent victims)
$MIN_VICTIM_BADNESS = 20
8. Verbosity
$PRINT_CONFIG_AT_STARTUP = FALSE
$PRINT_TOTAL_STAT = TRUE
$PRINT_CONF_AT_STARTUP = FALSE
$PRINT_MEM_CHECK_RESULTS = FALSE $PRINT_MEM_CHECK_RESULTS = FALSE
$MIN_DELAY_AFTER_PRINT_MEM_CHECK_RESULTS = 60
$PRINT_SLEEP_PERIODS = FALSE $PRINT_SLEEP_PERIODS = FALSE