CentOS 6 系の場合です。
- 利用可能な file descriptor 数の現在値の確認します。
1-1. システム全体
ulimit -a で open files を確認します。
...(snip)...
open files (-n) 1024
...(snip)...
1-2. squid
squid が現在利用可能な file descriptor の数を確認します。
$ squidclient mgr:info | grep 'file descri'
Maximum number of file descriptors:1024
Available number of file descriptors:1016
Reserved number of file descriptors: 100
以下の方法でも確認できます。
$ less /var/log/squid/cache.log
...(snip)...
With 1024 file descriptors available
...(snip)...
上記から分かったことなんですが、
デフォルトで squid は、1024 の file descriptor を利用できるようです。
では、この数を増やしてみましょう。
一例として、65535 にしてみます。
- squid が利用できる file descriptor の数を増やします。
2-1. /etc/security/limits.conf に以下を追記します。
* - nofile 65535
これは、すべてのユーザーの、file descriptor の soft, hard 設定を 65535 にする、です。
ログアウトします。
ulimit -a で open files を確認します。
...(snip)...
open files (-n) 65535
...(snip)...
ここで、/etc/squid/squid.conf に以下を追加しましょう。
max_filedesc 65535
サービスを再起動します。
# service squid restart
再度、squid が現在利用可能な file descriptor の数を確認します。
$ squidclient mgr:info | grep 'file descri'
Maximum number of file descriptors:65535
Available number of file descriptors:65527
Reserved number of file descriptors: 100
以下の方法でも確認できますよ。
$ less /var/log/squid/cache.log
...(snip)...
With 65535 file descriptors available
...(snip)...
それとも、/proc//limits でも確認できます。
利用できる file descriptor の数が増えた。
ここで、疑問なんですけど。。
以下のコマンドを実行して数を確認すると、こんなん出てきます。
$ cat /proc/sys/fs/file-max
386196
実際は、上記の file-max の値は越えられない、ってことですかね。
65535 なら、十分範囲内ですから、まあいいかな。