第 5 章 チューニング
5.4 運用時に必要なシステム資源(Linux)
Interstage HTTP Server 2.2の運用時は、Webサーバで使用している機能や環境定義ファイル(httpd.conf)の定義内容に 応じて、システム資源を拡張する必要がある場合があります。
以下の表を参照して必要なシステム資源の設定値を算出し、本値がシステムのデフォルト値を超える場合、本値を設定 してください。ファイルディスクリプタおよびプロセス・スレッドのシステムパラメタ、リソース制限(unit)については、ファイル ディスクリプタ数またはプロセス・スレッド数が不足する現象が発生した場合、システムパラメタに本値を設定してくださ い。
■パラメタと必要数
システム資源 パラメタ 種類 必要数
セマフォ セマフォID あたりのセマ フォの最大 数
[システムパラメタ(/etc/
sysctl.conf)]
para1 (kernel.sem)
設定値 1以上
システム全 体のセマ フォの最大 数
[システムパラメタ(/etc/
sysctl.conf)]
para2 (kernel.sem)
加算値 (注1)
1以上
セマフォコー ルあたりのセ マフォ操作 の最大数
[システムパラメタ(/etc/
sysctl.conf)]
para3 (kernel.sem)
設定値 1以上
セマフォID の最大数
[システムパラメタ(/etc/
sysctl.conf)]
para4 (kernel.sem)
加算値 (注1)
1以上
ファイル ディスクリ プタ
システム全 体のファイル ディスクリプ タの最大数
[システムパラメタ(/etc/
sysctl.conf)]
fs.file-max
加算値 (注1)
n + 10 以上
[以下の機能を使用する場合] 上記に以下の値を加算してください。
・ 基本認証機能:n
・ SSL運用:21 × n ÷ m
・ プロキシ機能:n
・ CGI機能:13 + n ÷ m (注2)
[環境定義ファイル(httpd.conf)に以下のディ レクティブを設定している場合]
上記に以下の値を加算してください。
・ CustomLog("|コマンド実行文"指定):ディ レクティブ数 × 2 × n ÷ m
・ CustomLog(ファイル名指定):ディレクティ
ブ数 × n ÷ m
・ ErrorLog:ディレクティブ数 × 2 × n ÷
m
・ Listen:ディレクティブ数× 2 × n ÷ m ファイルディ
スクリプタの 最大数
[リソース制限(unit)]
LimitNOFILE (注3)
設定値 (注1)
上記と同じ値
ユーザにお いてオープ ン可能なファ イルディスク リプタの最大 数
[リソース制限(/etc/
security/limits.conf)]
nofile
設定値 m + 10 以上
[以下の機能を使用する場合] 上記に以下の値を加算してください。
・ 基本認証機能:m
システム資源 パラメタ 種類 必要数
・ SSL運用:21
・ プロキシ機能:m
・ CGI機能:1 (注2)
[環境定義ファイル(httpd.conf)に以下のディ レクティブを設定している場合]
上記に以下の値を加算してください。
・ CustomLog("|コマンド実行文"指定):ディ レクティブ数 × 2
・ CustomLog(ファイル名指定):ディレクティ
ブ数
・ ErrorLog:ディレクティブ数 × 2
・ Listen:ディレクティブ数× 2
プロセス・
スレッド
システム全 体のプロセ ス・スレッドの 最大数
[システムパラメタ(/etc/
sysctl.conf)]
kernel.threads-max
加算値 (注1)
2 + n + (n ÷ m) × 2 以上 [以下の機能を使用する場合]
上記に以下の値を加算してください。
・ SSL運用:1
・ CGI機能:(注4)
[環境定義ファイル(httpd.conf)に以下のディ レクティブ("|コマンド実行文"指定)を設定して いる場合]
上記に以下の値を加算してください。
・ CustomLog:ディレクティブ数
・ ErrorLog:ディレクティブ数
・ IHSTraceLog:ディレクティブ数
プロセス・ス レッドの最大 数
[リソース制限(unit)]
LimitNPROC (注3)
設定値 (注1)
上記と同じ値
ユーザにお いて作成可 能なプロセ ス・スレッドの 最大数
[リソース制限(/etc/
security/limits.conf)]
nproc
設定値 (注1) (注5)
1 + n + (n ÷ m) × 2 以上 [以下の機能を使用する場合] 上記に以下の値を加算してください。
・ CGI機能:(注4)
m:環境定義ファイル(httpd.conf)のThreadsPerChildディレクティブの設定値 n:環境定義ファイル(httpd.conf)のMaxClientsディレクティブの設定値
注1)複数のWebサーバを運用している場合は、Webサーバごとに必要数を加算してください。
注2)動作するCGIプログラム内で必要となるファイルディスクリプタの数を別途加算してください。
注3)RHEL7を使用して、オペレーティングシステム起動時にWebサーバを自動起動する場合に設定してください。
注4)動作するCGIプログラム内で必要となるプロセス数・スレッド数を別途加算してください。
注5)環境定義ファイル(httpd.conf)のUserディレクティブで設定したユーザに対する値を設定してください。
■システムパラメタの変更手順(/etc/sysctl.conf)
システムパラメタを変更する手順を以下に示します。詳細については、オペレーティングシステムのドキュメントを参照し てください。
1. /etc/sysctl.confファイルを編集します。
上記の表の「種類」欄が「設定値」の場合は、/etc/sysctl.confファイルのパラメタの値を、上記で算出した値に変更 します。
上記の表の「種類」欄が「加算値」の場合は、/etc/sysctl.confファイルのパラメタの値に、上記で算出した値を加算 します。
注意
セマフォのパラメタは、以下の形式で指定します。
kernel.sem = para1 para2 para3 para4
2. 以下のコマンドを実行するか、またはオペレーティングシステムを再起動します。
sysctl -p /etc/sysctl.conf
■リソース制限の変更手順(/etc/security/limits.conf)
システムのリソースを制限する手順を以下に示します。詳細については、オペレーティングシステムのドキュメントを参照 してください。
1. /etc/security/limits.confファイルを編集します。/etc/security/limits.confファイルのパラメタ値を、上記で算出した値
に変更します。
2. オペレーティングシステムを再起動します。
■リソース制限の変更手順(unit)
RHEL7においてシステムのリソースを制限する手順を以下に示します。詳細については、「チューニングガイド」の「RHEL7
のunitファイルでの環境定義」を参照してください。
1. 環境定義用unitファイル(FJSVahs_start.service)を作成し、パラメタの値を以下の例のように記述します。
例
FJSVahs_start.serviceの記述例 [LimitNOFILEの場合]
.include /usr/lib/systemd/system/FJSVahs_start.service [Service]
LimitNOFILE=値 [LimitNPROCの場合]
.include /usr/lib/systemd/system/FJSVahs_start.service [Service]
LimitNPROC=値
2. /etc/systemd/system配下に、1.で作成したFJSVahs_start.serviceを格納します。
3. 管理者権限で、以下のコマンドを実行します。
/usr/bin/systemctl enable FJSVahs_start.service
4. オペレーティングシステムを再起動します。