增加sched_latency_ns和sched_min_granularity_ns的值


4

当我尝试增加这两个参数的值时,为什么会收到错误消息:

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

当我用sched_min_granularity_ns替换sched_latency_ns时,我得到了同样的错误。

有人能告诉我增加这些参数的正确方法。

Answers:


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         },

越大和越大的值对性能的改善越来越小。过高的值可能会导致问题。一秒钟已经是一个非常高的设置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.