Nginxの性能調整
2020/10/10
Too many open files エラー
Nginx -> express(NodeJS)というようにWebサーバーを構築し、負荷テストを行った際に、
Nginxが先に「Too many open files」のエラーで接続を切断するという事態が起こった。
負荷がかかりすぎると「Too many open files」エラーが発生する。その時は、
$ cat /proc/sys/fs/file-max
167488
というようにシステム全体のファイルディスクリプタの上限数を確認し、
workerprocesses、workerrlimitnofile、workerconnectionsをちょうどいいように調節する。
- worker_processesはCPUの数と同じか、autoを指定する
- workerrlimitnofileはファイルディスクリプタの上限に達しないようにする。worker_connectionsの3~4倍にする
- workerconnectionsは 「同時クライアント数はworkerprocess * workerconnection」となるので、workerrlimitnofileを超えないようにworkerprocessesを考えて設定する
例
nginx.conf
worker_processes auto;
worker_rlimit_nofile 20480;
events {
worker_connections 5120
}