nginx, redisの同時接続数を増やす

node+websocketを使っていて、nginx, redisあたりの同時接続数を増やしたいなぁと思って調べたのでめも。

一番詳しかったのはこちらの記事。
Linux サーバでの「Too many open files」対策について - akishin999の日記

簡単にまとめると、

  • ulimit -nで開けるファイルディスクリプタの上限を設定できる
  • /etc/security/limits.confを編集することでも設定できる
  • daemonだと上記の設定が有効にならない
  • /etc/sysconfig/initに設定すればいけるけど、ちょっとやり過ぎなきもする
  • イマココ

で、いろいろ調べていたら、nginx, redisそれぞれにconfファイルに指定できるオプションがあるのを教えてもらった。
nginxはworker_rlimit_nofile, worker_connectionsを指定、redisはver. 2.6以降はmaxclientsを指定すればいい。(redisは2.4だと指定できないので注意。あとredisの起動ユーザがrootじゃないとpermission deniedでこの指定が効かないので注意。)

Core functionality
Redis Clients Handling – Redis