どうもこんばんは
みなさん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設定 | ツチノコブログ