リクエスト処理に失敗し、ブラウザ上に503エラーが表示されることがあります。
ファイルディスクリプタが不足すると、ログに以下のメッセージが出力されます。
●Ver7.0 SP1まで
InterSafe_sys.log に「~Too many open files...」というメッセージが出力されます。
●Ver8.0以降
InterSafe_proxy.logに「~Too many open files...」
または、
InterSafe_filtering.logに「042630 Failed accept connection.[errno = 24:UNKNOWN]」
というメッセージが出力されます。
回避方法は下記となりますので、ご確認ください。
【回避方法】
ISWFのフィルタリングサービスが使用するファイルディスクリプタを変更することで
回避できる場合があります。
Ver8.5以降の場合system.infの編集になります。
●Ver8.5以降の場合
デフォルトで32768という値を設定しておりますので、変更の必要はほとんどございません。
編集される場合は以下のファイルで行います。
●編集するファイル
/<InterSafe導入ディレクトリ>/conf/sys/system.inf
●設定箇所
[SYSTEM_GLOBAL]
LIMIT_NOFILE=32768(初期値)
※上記キーは初期では記載されておりません。
設定変更後はフィルタリングサービスの再起動をお願いいたします。
Ver8.0以下の場合フィルタリングサービスの起動シェルを、次のようにエディタで編集して、
ファイルディスクリプタを変更する「ulimit」コマンドの記述を挿入してください。
(赤文字の個所のように追記します。)
●Ver8.0の場合
※Ver8.0はSolarisOSには対応しておりません。
/<ISWFインストールディレクトリ>/bin/amsproxy
/<ISWFインストールディレクトリ>/bin/amsproxyexe
/<ISWFインストールディレクトリ>/bin/amsproxysd
-----------------------
<省略>
# BEGIN INITIALIZE
CUR_PATH=`pwd`
BIN_PATH=`dirname "${0}"`
BIN_NAME=`basename "${0}"`
ulimit -n ファイルディスクリプタ数
"${BIN_PATH}"
<省略>
-----------------------
※挿入箇所は全ての起動シェルで共通です。
●Ver7.0の場合 /<ISWFインストールディレクトリ>/bin/amsproxyexe
-----------------------
PATH="${JAVA_HOME}/bin:$PATH"
export PATH
ulimit -n ファイルディスクリプタ数
-----------------------
「ulimit -n」で指定するファイルディスクリプタ数がフィルタリングサービスで
使用するプロセス数の3倍以上になるように設定してください。
(例えば、1500 を設定したい場合、ulimit -n 1500 と記述します。)
「ulimit」コマンド設定後は、フィルタリングサービスを再起動してください。
(設定例:Proxy版の場合)
/<ISWFインストールディレクトリ>/conf/proxy.inf
[PROXY_PORT]
HTTP=8080,500
HTTPS=8443,75
FTP_OVER_HTTP=8021,75
上記の場合、(500 + 75 + 75) * 3 = 1950 となりますので、1950(以上)を設定します。
(設定例:Squid版、ICAP版の場合)
/<ISWFインストールディレクトリ>/conf/proxy.inf
[CONTROL_CFG]
SERVER_PROCESS=500
上記の場合、500 * 3 = 1500 となりますので、1500(以上)を設定します。
※注意事項
・OS側の設定で「ulimit」コマンドの設定を増加している場合でも、ISWF側の設定値が
有効になりますので、必ずOS側の設定値よりも大きい値を設定してください。
Linuxでは、「ulimit」コマンドの初期値は1024となっております。
・ISWFサーバごとに「ulimit」コマンドの設定が必要となります。
・バージョンアップの際は起動シェルが上書きされ、「ulimit」コマンドの指定が
削除されます。既に指定済みで、バージョンアップを行う場合は、必ず、再指定してください。