4

Почему я получаю сообщение об ошибке, когда пытаюсь увеличить значения этих двух параметров:

#cat /proc/sys/kernel/sched_latency_ns
1000000000
#echo 2000000000 > /proc/sys/kernel/sched_latency_ns
bash: echo: write error: Invalid argument
#

Я получаю ту же ошибку при замене sched_latency_ns на sched_min_granularity_ns.

Может кто-нибудь сказать мне правильный способ увеличить эти параметры.

1 ответ1

4

Одна секунда - это абсолютное максимально допустимое значение для этого параметра. Значения больше 1000000000 недопустимы (количество наносекунд в одной секунде).

Смотрите исходный код ядра

262 static int max_sched_granularity_ns = NSEC_PER_SEC;     /* 1 second */

а также

строка 294

294         {
295                 .procname       = "sched_latency_ns",
296                 .data           = &sysctl_sched_latency,
297                 .maxlen         = sizeof(unsigned int),
298                 .mode           = 0644,
299                 .proc_handler   = sched_proc_update_handler,
300                 .extra1         = &min_sched_granularity_ns,
301                 .extra2         = &max_sched_granularity_ns,
302         },

Большие и большие значения имеют убывающее улучшение производительности. Чрезмерно высокие значения могут вызвать проблемы. Одна секунда - это уже чрезвычайно высокое значение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .