CentOS6で/sys/の変更を永続化する方法

どうもこんばんは

みなさんRFS/RPS使ってますか?
使ってなければ使いましょう。mottai nai。

今回はCentOS6で/sys/の変更を永続化する(再起動してもsysfsの設定が消えない)方法です。

/sys/sysfs といいます。 grep sysfs /proc/mounts してみるとよろしいかと

以下設定方法です。

  • 設定方法
  • 再起動しても消えないように永続化する方法
  • 簡単に設定する方法

設定方法

オンラインで設定する場合

/sys/class/net/*/queues/rx-*/rps_cpus は、使いたいCPUをbitで考えて16進数で設定します。
4コアあって xxoo なら 0011 なので 3 とかそんなん。

eth1のrx-0を4コアで使う場合はこんな感じ。

echo "f" > /sys/class/net/eth1/queues/rx-0/rps_cpus
echo "32768" > /sys/class/net/eth1/queues/rx-0/rps_flow_cnt
echo "32768" > /proc/sys/net/core/rps_sock_flow_entries

再起動しても消えないように永続化する方法

いろいろ調べてみたものの、おそらくきれいな方法は

  • /etc/udev/rules.d/70-persistent-net.rules でattribute指定する
  • /etc/sysctl.conf に書く

の合わせ技かなぁと思います。

/etc/udev/rules.d/70-persistent-net.rules

ATTR{type}=="1" の後に、 ATTR{queues/rx-0/rps_cpus}="f", ATTR{queues/rx-0/rps_flow_cnt}="32768", とかを書き足します。

ATTR{type}=="1", ATTR{queues/rx-0/rps_cpus}="f", ATTR{queues/rx-0/rps_flow_cnt}="32768",

/etc/sysctl.conf

ふつうに書きます

net.core.rps_sock_flow_entries = 32768

反映方法

サーバ再起動してテストしましょう。

簡単に設定する方法

つくりました。

まとめ

udevムツカシイネー

参考文献

いちばんうえのをきちんと読みましょう。だいじ。

Linux 

See also