微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过 sysctl 命令设置的值未反映在内核中

如何解决通过 sysctl 命令设置的值未反映在内核中

我正在尝试调整一些内核参数,特别是 net.core.netdev_budget 和 net.core.dev_weight 参数。 我用下面的命令来设置这些参数

sudo sysctl -w net.core.dev_weight = 5
sudo sysctl -w net.core.netdev_budget = 10 

Linux 内核中第一个参数的认值为 64,第二个参数的认值为 300。

更改这些值后,它们分别反映在 /proc/sys/net/core/dev_weight 和 /proc/sys/net/core/netdev_budget 中。

但是,当我在 napi_poll 跟踪点 (tracepoint:api:napi_poll) 附加 bpftrace 程序时。此跟踪点在代码中命中时提供 2 个主要值:

  1. work - 这是 napi_poll 函数处理的数据包数量
  2. budget - 这是 napi_poll 函数可以处理的最大允许数据包数,这等于 net.core.dev_weight 内核参数。

当我打印出每次命中跟踪点时给出的值时,预算值始终为 64,即使我已通过 sysctl 命令将其设置为 5。

除了通过 sysctl -w 命令设置值以使其反映在内核中之外,我是否还需要做其他事情?

我正在使用 RHEL 版本 5.5.6-1.el7.elrepo.x86_64。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。