Brekeke SIP Server Wiki

Linuxでのファイルディスクリプタの上限

Brekeke PBX/SIP Server が、Linux 上で動作しているとき、ファイルディスクリプタ数の上限により、可能なセッション数が制限されるので、小規模での運用以外では、この設定を必ず行ってください。

 

ファイルディスクリプタ上限のチェック

以下のコマンドで、現在のユーザーのファイルディスクリプタ数をチェックできます。

# 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

マシンをリスタートしてください。

Yes No
Suggest Edit