どうもこんばんは
みなさん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ムツカシイネー
参考文献
いちばんうえのをきちんと読みましょう。だいじ。
- Performance Tuning Guide Chapter 8. Networking
- CentOS 6.2 で RPS/RFS を使ってネットワークの割り込み処理を複数コアに分散してみた - blog.nomadscafe.jp
- RPS/RFS設定 | ツチノコブログ