LoginSignup
17
15

More than 5 years have passed since last update.

nginxのworker_cpu_affinityの設定を自動生成する

Last updated at Posted at 2014-07-24

nginxにはworker_cpu_affinityというワーカープロセスを特定のCPUコアに割り振るディレクティブがある。これを使えばnginxの各ワーカープロセスをそれぞれ別のCPUコアに均等に割り当てることが可能になる。

# CPUのコア数(=4)分のワーカープロセスを起動(この場合はautoでもよい)
worker_processes 4;
# 各CPUコアに均等にワーカープロセスを割り当てる
worker_cpu_affinity 1000 0100 0010 0001;

さて、ここからが本題だが、worker_cpu_affinityの設定を手で書くのは少々めんどくさい。上記の場合、CPUコア数は4だからまだ楽だが、8とか16とかになると結構つらい。というか高確率でtypoする。というわけでジェネレーターをGoで書いてみた。

nwcagen - worker_cpu_affinity configuration generator for nginx.

追記(2016/07/02):ngnx-1.9.15からworker_cpu_affinityの値にautoを設定することでCPUコアを各ワーカープロセスに均等に割り当てることができるようになりました。コメント欄を参照)

インストールは↓で。

go get -u github.com/cubicdaiya/nwcagen

あとはnwcagenというコマンドにワーカー数(-n)とCPUコア数(-c)を与えて実行すればOK。引数なしの場合は実行されているマシンのCPUコア数を基に生成する。

$ nwcagen -n 4 -c 4
worker_cpu_affinity 1000 0100 0010 0001;
$

今のところ各CPUに割り振る設定しか吐けないけど、そもそも特定のCPUに偏る設定を書くケースってレアだよね?(多分)

17
15
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
15