オペレーティング・システムでは、ファイル・ディスクリプタを使用して、ファイルシステムのファイル、および接続やリスナー・ソケットなどの擬似ファイルを処理します。
ファイル・ディスクリプタを必要とする主要なOracle Traffic Directorオブジェクトは、キープ・アライブ接続、キューに入れられた接続、およびオリジン・サーバーへの接続です。これらのオブジェクトの制限を明示的に指定しない場合、Oracle Traffic Directorインスタンスが起動すると、制限(最大キープ・アライブ接続、接続キューのサイズ、および各オリジン・サーバーの最大接続数)が、システム内で使用可能なファイル・ディスクリプタの合計数に基づいて自動的に構成されます。
割り当てられたファイル・ディスクリプタ数は、システムでサポート可能な制限を超えられません。ファイル・ディスクリプタの現在のシステム制限を確認するには、次のコマンドを実行します。
$ cat /proc/sys/fs/file-max 2048
使用可能なファイル・ディスクリプタのうち現在使用されている数を確認するには、次のコマンドを実行します。
$ cat /proc/sys/fs/file-nr
このコマンドによって、次のような出力が返されます。
625 52 2048
この例では、625
は割当て済ファイル・ディスクリプタ数、52
は空きの割当て済ファイル・ディスクリプタ数、2048
はシステムでサポートされているファイル・ディスクリプタの最大数です。
割当て済ファイル・ディスクリプタがシステムの制限に達すると、ファイルを開くときに次のエラー・メッセージがシステム・コンソールに表示されます。
Too many open files in system.
次のメッセージがサーバー・ログに書き込まれます。
[ERROR:16] [OTD-10546] Insufficient file descriptors for optimum configuration.
これは、システムではこれ以上ファイルを開くことができないという重大な問題です。この問題を回避するために、ファイル・ディスクリプタ制限を合理的な数まで増やすことを検討してください。
Linuxでファイル・ディスクリプタ数を変更するには、次の操作をroot
ユーザーとして行います。
次の行を/etc/sysctl.conf
ファイルで編集します。
fs.file-max = value
value
は、設定する新しいファイル・ディスクリプタ制限です。
次のコマンドを実行して、変更を適用します。
# /sbin/sysctl -p