为什么当我尝试增加这两个参数的值时会收到错误消息:
#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 时,我遇到了同样的错误。
有人能告诉我增加这些参数的正确方法吗?
答案1
一秒是该设置可接受的绝对最大值。超过 1000000000 的值无效(一秒内的纳秒数)。
262 static int max_sched_granularity_ns = NSEC_PER_SEC; /* 1 second */
和
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 },
值越大,对性能的改善就越小。过高的值可能会引起问题。一秒已经是一个非常高的设置了。