computerの日記

Cisco,SHELL,C,Qt,C++,Linux,ネットワーク,Windows Scriptなどの発言です

CentOS6 系で squid が利用できる file descriptor の数を増やす方法

CentOS 6 系の場合です。

1. 利用可能な 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 にしてみます。

2. 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 restar

再度、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/<PID>/limits でも確認できます。

利用できる file descriptor の数が増えた。

ここで、疑問なんですけど。。
以下のコマンドを実行して数を確認すると、こんなん出てきます。
$ cat /proc/sys/fs/file-max
386196

実際は、上記の file-max の値は越えられない、ってことですかね。
65535 なら、十分範囲内ですから、まあいいか。。

お腹すいたァ。。