- PR -

SquidがNo buffer space availableで異常終了する。

1
投稿者投稿内容
shinobu
常連さん
会議室デビュー日: 2004/12/08
投稿数: 22
投稿日時: 2006-07-10 11:22
Squid 2.6.STABLE1-NT for i686-pc-winnt
Windows2000severSP4
RAM 1G
FTTH(Bフレッツハイパーファミリータイプ)

こんにちはお世話になります。
上記の環境でSquidを運用しているのですが、No buffer space availableをcache.logログに吐いてたびたび異常終了してしまいます。

confの設定で関係ありそうなところは調整してみているのですが、なかなか思い通りになりません。何か確認すべき項目はありませんでしょうか。

基本的な設定項目は以下の通りです。
#キャッシュメモリのサイズ
#Default:
# cache_mem 8 MB
cache_mem 256 MB

#キャッシュディレクトリの設定 サイズ(MB)、サブディレクトリの階層構造
#Default:
# cache_dir ufs c:/squid/var/cache 100 16 256
cache_dir ufs c:/squid/var/cache 10000 32 512

以下cache.logの内容
2006/07/10 00:10:32| temporary disabling (Not Found) digest from hoge.hoge.com
2006/07/10 00:15:32| temporary disabling (Not Found) digest from hoge.hoge.com
2006/07/10 00:25:32| temporary disabling (Not Found) digest from hoge.hoge.com
2006/07/10 00:45:32| temporary disabling (Not Found) digest from hoge.hoge.com
2006/07/10 01:25:33| temporary disabling (Not Found) digest from hoge.hoge.com
2006/07/10 02:45:33| temporary disabling (Not Found) digest from hoge.hoge.com
2006/07/10 05:25:34| temporary disabling (Not Found) digest from hoge.hoge.com
2006/07/10 10:38:24| comm_select: select failure: (10055) WSAENOBUFS, No buffer space available.
2006/07/10 10:38:24| examine_select: Examining open file descriptors...
2006/07/10 10:38:24| Select loop Error. Retry 1
2006/07/10 10:38:24| comm_select: select failure: (10055) WSAENOBUFS, No buffer space available.
2006/07/10 10:38:24| examine_select: Examining open file descriptors...
2006/07/10 10:38:24| Select loop Error. Retry 2
2006/07/10 10:38:24| comm_select: select failure: (10055) WSAENOBUFS, No buffer space available.
2006/07/10 10:38:24| examine_select: Examining open file descriptors...
2006/07/10 10:38:24| Select loop Error. Retry 3
2006/07/10 10:38:24| comm_select: select failure: (10055) WSAENOBUFS, No buffer space available.
2006/07/10 10:38:24| examine_select: Examining open file descriptors...
2006/07/10 10:38:24| Select loop Error. Retry 4
2006/07/10 10:38:24| comm_select: select failure: (10055) WSAENOBUFS, No buffer space available.
2006/07/10 10:38:24| examine_select: Examining open file descriptors...
2006/07/10 10:38:24| Select loop Error. Retry 5
2006/07/10 10:38:24| comm_select: select failure: (10055) WSAENOBUFS, No buffer space available.
2006/07/10 10:38:24| examine_select: Examining open file descriptors...
2006/07/10 10:38:24| Select loop Error. Retry 6
2006/07/10 10:38:24| comm_select: select failure: (10055) WSAENOBUFS, No buffer space available.
2006/07/10 10:38:24| examine_select: Examining open file descriptors...
2006/07/10 10:38:24| Select loop Error. Retry 7
2006/07/10 10:38:24| comm_select: select failure: (10055) WSAENOBUFS, No buffer space available.
2006/07/10 10:38:24| examine_select: Examining open file descriptors...
2006/07/10 10:38:24| Select loop Error. Retry 8
2006/07/10 10:38:24| comm_select: select failure: (10055) WSAENOBUFS, No buffer space available.
2006/07/10 10:38:24| examine_select: Examining open file descriptors...
2006/07/10 10:38:24| Select loop Error. Retry 9
2006/07/10 10:38:24| comm_select: select failure: (10055) WSAENOBUFS, No buffer space available.
2006/07/10 10:38:24| examine_select: Examining open file descriptors...
2006/07/10 10:38:24| Select loop Error. Retry 10
FATAL: Select Loop failed!
Squid Cache (Version 2.6.STABLE1-NT): Terminated abnormally.
CPU Usage: 134.969 seconds = 64.719 user + 70.250 sys
Maximum Resident Size: 36900 KB
Page faults with physical i/o: 51338

[ メッセージ編集済み 編集者: shinobu 編集日時 2006-07-10 11:23 ]
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2006-07-10 12:27
こんにちわ.

Windows では使ったことがないので外しているかもしれませんが,
cache directory は初期化しましたか?
非武装エリア
大ベテラン
会議室デビュー日: 2004/03/03
投稿数: 202
お住まい・勤務地: 日本・たこ部屋
投稿日時: 2006-07-10 14:25
プログラム内部で使用されているとバッファエリアが不足してるのかも知れません。
まずは、ディスクキャッシュをデフォルトの

cache_dir ufs c:/squid/var/cache 100 16 256

に戻してみて様子を見ては如何でしょうか?
特に、「16 256」の部分を増やすと、管理するファイルディスクリプションが大量に増えてしまうように思われますので、この部分はいじらないか逆に減らした方が良いかも知れません。 また、100の部分を増やす事でキャッシュオブジェクトは増えますが、ある程度増やすと余程のクライアントが存在しない利用されないオブジェクトとなって単なるダーティキャッシュ保管エリアになってしまうので、これらの値はいきなり増やすのでは無くキャッシュマネージャなどの情報を見ながらこまめにチューニングしていった方が良いかも知れません。(余程クライアントが多くない限り、「500 16 256」辺りで実運用上余り困る事は無いように思いますが... あとは階層キャッシュを使うとか..)

あと、100の部分での指定は利用するsquidで利用できるディスクスペースの70%以内にするように指定してください。

shinobu
常連さん
会議室デビュー日: 2004/12/08
投稿数: 22
投稿日時: 2006-07-10 17:18
ありがとうございます。
デフォルトでもテストしては居るのですが、再度デフォルトに戻して様子をみてみたいと思います。ちなみに上記以外でポイントはありますでしょうか?
非武装エリア
大ベテラン
会議室デビュー日: 2004/03/03
投稿数: 202
お住まい・勤務地: 日本・たこ部屋
投稿日時: 2006-07-10 18:46
インターネットを拾い読みしたところ、Windowsのソケットに起因する問題かも知れません。
TCPのコネクションが5000以上になると問題が顕在化らしいです。

(参照)http://wiki.noreply.org/noreply/TheOnionRouter/WindowsBufferProblems

で解決はしませんが、上記のサイトに問題軽減する方法としてレジストリをいじる方法が載っているようです。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ParametersにTcpNumConnectionsというキーをDWORDで作成して値に800を指定し再起動しろとの事のようです。
(但し、結果は保証しませんので悪しからず (^^ゞ

根本的な解決には、Proxyを複数で構成し負荷を分散するか、LinuxやUnixで構築するのが近道のような気がします。


[ メッセージ編集済み 編集者: 非武装エリア 編集日時 2006-07-10 18:50 ]
非武装エリア
大ベテラン
会議室デビュー日: 2004/03/03
投稿数: 202
お住まい・勤務地: 日本・たこ部屋
投稿日時: 2006-07-10 18:50
こっちの情報の方がいいかな

http://support.microsoft.com/kb/Q196271


[ メッセージ編集済み 編集者: 非武装エリア 編集日時 2006-07-10 18:57 ]
shinobu
常連さん
会議室デビュー日: 2004/12/08
投稿数: 22
投稿日時: 2006-07-11 09:43
非武装エリアさん
Kazさん

ありがとうございます。
>根本的な解決には、Proxyを複数で構成し負荷を分散するか、LinuxやUnixで構築するのが近道のような気がします。
確かにそうだと思います・・・。ただ、今まではメンテナンス性から(扱える人間が自分しかいない)しょうがなくWindowsにしています。

squid単体の問題ではなくシステムの問題ということなのでしょうね。そちらには目が向いてませんでした。

とりあえず様子を見つつ、Windowsのソケットの問題も修正してみたいと思います。
今のところcache_dir ufs c:/squid/var/cache 100 16 256に戻し、キャッシュを初期化したところ落ち着いているようです。負荷があがってきたところでどうなるか・・・


[ メッセージ編集済み 編集者: shinobu 編集日時 2006-07-11 09:45 ]
1

スキルアップ/キャリアアップ(JOB@IT)