Linux でのファイルディスクリプタの上限を変更
Brekeke PBX/SIP Server が、Linux 上で動作しているとき、ファイルディスクリプタ数の上限により、可能なセッション数が制限されるので、小規模での運用以外では、この設定を必ず行ってください。
Brekeke PBX/SIP Serverが使用するデフォルトのポート範囲は、以下の通りです。
- SIP Server:10000~29999
- PBX:30000~49999
- メディアサーバー:50000~59999
Brekeke PBXに必要なデフォルトのポートの総数は50000です。
ファイルディスクリプタ上限を、Brekeke PBXが必要とするポート数よりも多くする必要があります。
ファイルディスクリプタ上限のチェック
以下のコマンドで、現在のユーザーのファイルディスクリプタ数をチェックできます。
# ulimit -n
稼働している Javaプロセスのファイルディスクリプタ制限をチェック
1. PID を調べます。
# ps -eaf | grep java | grep -v grep | awk '{print $1,$2,$3,$4,$5,$6,$7,$8}'
結果の例:
# ps -eaf | grep java | grep -v grep | awk '{print $1,$2,$3,$4,$5,$6,$7,$8}' root 3699 1 0 Sep01 ? 03:44:38 /opt/jdk1.8.0_91/bin/java root 3731 3699 0 Sep01 ? 00:14:07 /opt/jdk1.8.0_91/jre/bin/java root 3828 3699 0 Sep01 ? 00:13:51 /opt/jdk1.8.0_91/jre/bin/java root 3871 3699 0 Sep01 ? 00:36:53 /opt/jdk1.8.0_91/jre/bin/java root 3916 3699 0 Sep01 ? 00:19:51 /opt/jdk1.8.0_91/jre/bin/java
2番目の列の値が、それぞれのプロセスの PID です。
2. それぞれのプロセスのファイルディスクリプタ数制限を次のコマンドでチェックします。
# cat /proc/<PID>/limits
結果の例:
# cat /proc/3699/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 10485760 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes 29715 29715 processes Max open files 50240 50240 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 29715 29715 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us
3. それぞれの PID でチェックしてください。
ファイルディスクリプタ上限の変更方法
1. /etc/security/limits.conf を開いてください。
2. 次の設定値の上限を変更してください。
* soft nofile 50240 * hard nofile 50240
3. マシンをリスタートしてください。