Рано или поздно каждый, кто администрирует сервер, ставит nice -n 19 перед тяжёлой задачей и ждёт чуда — а чуда не происходит. Или наоборот: видит, что фоновый бэкап «съедает» весь CPU, ставит ему nice -n -19 для «ускорения», и через минуту сервер начинает тормозить целиком. Дело не в том, что nice сломан — дело в том, что почти никто не читал, как на самом деле работает планировщик, которым nice управляет. Разберёмся, что реально происходит внутри ядра, когда на сервере одновременно хотят работать десять процессов, а ядро всего четыре.
Подробнее →