nginx 1.9.1でのsocket sharding | no news.

nginx 1.9.1でのsocket sharding

いつの間にか1.9.1が出ていた。変更点で目についたのはSSL v3がデフォルトで無効になったこと、

*) Change: some long deprecated directives are not supported anymore.

長い間陳腐化していたディレクティブが使えなくなったみたいだけどどれが使えなくなったんだよ※。。。この2点。が、ググってみるとそれ以外にも注目点があるらしい。それがreuseportパラメータ。これはSocket Sharding in NGINX Release 1.9.1という本家のブログ記事がある。引用してみると

With the SO_REUSEPORT option enabled, there is a separate listening socket for each worker. The kernel determines which available socket (and by implication, which worker) gets the connection. While this does decrease latency and improve performance as workers accept connections, it can also mean that workers are given new connections before they are ready to handle them.

REUSEPORTオプションを使うとワーカーごとにソケットが開かれる。カーネルがどのソケットに(どのワーカーに)接続するか決定する。これはレイテンシを下げパフォーマンスが向上する。ワーカーが接続を扱う準備ができる前に新たな接続を与えられることも意味する

なんのこっちゃ。がパフォーマンスが向上するのは間違いないと思うんですよ。なので試してみました。

ちなみに。reuseportパラメータを使うにはnginxのバージョンを上げれば良いというだけでなく、Linuxであればカーネル3.9以上でないといけないようです。うちの環境は

# uname -r
3.13.0-37-generic
#

なので大丈夫なようです。多分。

さてnginx側の設定ですが、listenディレクティブにreuseportと追記してやるだけです。

listen 443 ssl spdy reuseport ;

これだけ書いてリロードすればOK。で、本来はパフォーマンス向上が目的なのでテストするべきですがそれはまた。そもそも性能アップしてもこのサイトでは意味ないし。でも設定がちゃんと生きてるのか見てみないと意味ないし。で何気なくnetstatで見てみました。reuseportオプションを付ける前は

# netstat -ntlp | grep 443
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 15146/nginx: worker
#

当たり前ですね。443で待ち受けてるポートは一つだけです。reuseportオプションを付けてみると

# netstat -ntlp | grep 443
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 15155/nginx: worker
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 15155/nginx: worker
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 15155/nginx: worker
#

3つに増えましたw最初見た時なんで3つ!?って思いました。よくよくブログ記事を見直すと

With the SO_REUSEPORT option enabled, there is a separate listening socket for each worker.

ということでワーカーの数だけリッスンされるソケットが出来るみたいです。このサーバーでは3つに設定しているのです。

worker_processes 3;

試しに6に変えてみたら、ちゃんと6個開いてました。

※とりあえずconnectionsディレクティブがなくなったらしい。 [nginx] Removed the deprecated “connections” directive. ハイパフォーマンスHTTPサーバ Nginx入門によると現在ではworker_connectionsを使うとのこと。

スポンサーリンク
レクタングル大

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル大

コメント