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でこの指定が効かないので注意。)