以下のカーネル資源の見積りと設定方法について説明します。
共用メモリ資源
セマフォ資源
ファイルディスクリプタ数の最大値(スケーラブルログ運用を行う場合のみ)
なお、見積りで使用するロググループ数は、監査ログ用ロググループを除いた値としてください。
プロジェクトデータベース(/etc/projectファイル)または、カーネル構成ファイル(/etc/systemファイル)のどちらか一方に設定します。システム全体で設定するファイルを統一することを推奨します。
プロジェクトデータベース(/etc/projectファイル)を利用する場合
カーネル構成ファイル(/etc/systemファイル)を利用する場合
注意
プロジェクトデータベース(/etc/projectファイル)または、カーネル構成ファイル(/etc/systemファイル)に値が設定されている場合は、値を確認し、追加や変更を行ってください。プロジェクトデータベースおよび、カーネル構成ファイルに値が設定されていない場合は、OSのデフォルト値が使用されています。この場合には、OSのデフォルト値を基準にしてシステムで使用する構成ファイルへ追加や変更を行ってください。OSが使用している値は、sysdefコマンドまたはprctlコマンドにより表示できます。
sysdefコマンドまたはprctlコマンドの詳細については、OSのmanコマンドで確認してください。
各パラメタの説明で、“最大値”とあるパラメタについては、すでに設定されている値またはデフォルト値と比較して大きい方の値を設定し、“加算”とあるパラメタについては、すでに設定されている値またはデフォルト値に加算した値を設定してください。
プロジェクトデータベース(/etc/projectファイル)を使用する場合
値を設定するプロジェクトについて説明します。
プロジェクトデータベースを利用する場合は、system、user.root、モニタデーモンを起動するユーザ、およびdefaultプロジェクトすべてに値を設定してください。なお、すでにユーザ定義のプロジェクトを作成している場合は、同様にユーザ定義のプロジェクトへも値を設定してください。また、プロジェクトデータベースを使用する場合は、以下を参照し、projmodコマンドを使用して値を設定してください。
project名 | 概要 |
---|---|
system | OS起動時のデーモンやcronのプロセスが属するプロジェクト |
user.root | スーパユーザが属するプロジェクト |
user.username | モニタデーモンを起動するユーザが属するプロジェクト |
default | プロジェクトが未定義の一般ユーザが属するプロジェクト |
スケーラブルログ運用を行う場合、ファイルディスクリプタ数の最大値を、モニタデーモンを起動するユーザのプロジェクトに設定してください。
project名 | 概要 |
---|---|
user.username | モニタデーモンを起動するユーザが属するプロジェクト |
参照
プロジェクトデータベース内のパラメタの詳細は、システムベンダのドキュメントを参照してください。
値を設定するパラメタ名と設定値について説明します。
共用メモリ資源の設定について説明します。
プロジェクトデータベース内のproject.max-shm-memory、project.max-shm-idsに以下の値をコマンドで設定してください。
パラメタ名 | 必要数 | 備考 |
---|---|---|
project.max-shm-memory | 3158840 × ロググループ数 + Symfoware/RDB必要数(注1) | 加算 |
project.max-shm-ids | 4 × ロググループ数 × 同時起動DBミラーリングシステム数(注2) | 加算 |
注1) システム(Solarisマシン)全体の共用メモリの指定値であるため、Symfoware/RDBでの必要数を加算して設定する必要があります。
注2) 本バージョンでは“1”です。
セマフォ資源の設定について説明します。
プロジェクトデータベース内のproject.max-sem-ids、process.max-sem-nsemsに以下の値をコマンドで設定してください。
パラメタ名 | 必要数 | 備考 |
---|---|---|
project.max-sem-ids | 4 × ロググループ数 × 同時起動DBミラーリングシステム数(注1) | 加算 |
process.max-sem-nsems | 4 × ロググループ数 + Symfoware/RDB必要数(注2) | 最大値 |
注1) 本バージョンでは“1”です。
注2) システム(Solarisマシン)全体のセマフォの指定値であるため、Symfoware/RDBでの必要数を加算して設定する必要があります。
注意
Symfoware/RDBのカーネル資源の以下の値を求める概算式に、“同時に実行するデータベース二重化のコマンド数”を加算してください。
クライアント多重度
クライアントプロセス多重度
同時に実行するデータベース二重化のコマンドの数は、以下の式から算出します。
同時に実行するデータベース二重化のコマンド数 = 13 + (2 × ロググループ数) + 監査対象のデータベーススペース数 + 利用者が同時に実行するコマンド数
以下にprojmodコマンドを使用して、user.rootプロジェクトに共用メモリの獲得方式を一括獲得方式にする場合の設定例を示します。
共用メモリ資源のパラメタproject.max-shm-memoryに2G、project.max-shm-idsに1Kを設定します。
# projmod -s -K 'project.max-shm-memory=(privileged,2G,deny)' user.root # projmod -s -K 'project.max-shm-ids=(privileged,1K,deny)' user.root
セマフォ資源のパラメタproject.max-sem-idsに1K、process.max-sem-nsemsに512を設定します。
# projmod -s -K 'project.max-sem-ids=(privileged,1K,deny)' user.root # projmod -s -K 'process.max-sem-nsems=(privileged,512,deny)' user.root
上記で設定した値が正しいか以下のコマンドで確認してください。
# projects -l user.root user.root projid : 1 comment: "" users : (none) groups : (none) attribs: process.max-msg-messages=(privileged,10000,deny) process.max-msg-qdbytes=(privileged,65536,deny) project.max-msg-ids=(privileged,1000,deny) process.max-sem-nsems=(privileged,512,deny) project.max-sem-ids=(privileged,1000,deny) project.max-shm-ids=(privileged,1000,deny) project.max-shm-memory=(privileged,2147483648,deny) #
上記手順1.~3.をsystem、モニタデーモンを起動するユーザ、およびdefaultプロジェクトへも実施してください。
また、ユーザ定義のプロジェクトが作成されている場合は、同様に実施してください。
ユーザ定義のプロジェクトが作成されていない場合は、projaddコマンドを使用して追加してください。
ファイルディスクリプタ数の最大値の設定について説明します。
スケーラブルログ運用を行う場合、必要となるファイルディスクリプタ数を算出し、その値がプロセスで使用可能なファイルディスクリプタ数の最大値を上回っていた場合に変更が必要となります。
必要となるファイルディスクリプタ数の最大値は、以下の式から算出します。
必要なファイルディスクリプタ数 = 64 + ((8 + (RLCファイルの数 × 2) × ロググループ数)
ロググループ単位でRLCファイルの数が異なる場合は、“付録A 資源の見積り(詳細版)”で見積ってください。
プロジェクトデータベース内のprocess.max-file-descriptorに以下の値をコマンドで設定してください。
パラメタ名 | 必要数 | 備考 |
---|---|---|
process.max-file-descriptor | 必要なファイルディスクリプタ数 | 最大値 |
以下にprojmodコマンドを使用して、モニタデーモンを起動するユーザ(user001)が属するプロジェクトに、ファイルディスクリプタ数の最大値を設定する例を示します。
ファイルディスクリプタ数の最大値のパラメタprocess.max-file-descriptorに3000を設定します。
# projmod -s -K 'process.max-file-descriptor=(basic,3000,deny)' user.user001
上記で設定した値が正しいか、以下のコマンドで確認してください。
# projects -l user.user001 user. user001 projid : 100 comment: "" users : (none) groups : (none) attribs: process.max-file-descriptor=(basic,3000,deny) process.max-sem-nsems=(privileged,512,deny) project.max-sem-ids=(privileged,1000,deny) project.max-shm-ids=(privileged,1000,deny) project.max-shm-memory=(privileged,2147483648,deny) #
ポイント
スーパユーザの場合、ファイルディスクリプタ数の上限はulimitコマンドで一時的にファイルディスクリプタ数の上限を変更することができます。詳細については、使用しているシステムベンダのドキュメントを参照してください。
参照
Symfoware/RDBのカーネル資源については、“セットアップガイド”を参照してください。
プロジェクトデータベースの設定方法およびprojmod、projaddコマンドの詳細については、使用しているシステムベンダのドキュメントを参照してください。
カーネル構成ファイル(/etc/systemファイル)を利用する場合
カーネル構成ファイル(/etc/systemファイル)に設定します。
注意
カーネル編集が完了したら、システムを再起動してください。
Solarisのリリースによりカーネル構成ファイル内のパラメタが廃止されたり、デフォルト値が変更されることがあります。廃止されたパラメタについては設定は不要です。
カーネル構成ファイル内のパラメタの詳細については、使用しているシステムベンダのドキュメントを参照してください。
non-global zoneでカーネル構成ファイル(/etc/systemファイル)を使用する場合は、各non-global zoneの値を加算し、その合計値をglobal zoneのカーネル構成ファイルに設定してください。
以下のような構成の場合は、non-global zone A,B,C の合計値をglobal zoneのカーネル構成ファイルへ加算してください。
共用メモリ資源の設定について説明します。
カーネル構成ファイル内のshminfo_shmmax、shminfo_shmmniに以下の値を設定してください。
パラメタ名 | 必要数 | 備考 |
---|---|---|
shmsys:shminfo_shmmax | 3158840 × ロググループ数 + Symfoware/RDB必要数(注1) | 最大値 |
shmsys:shminfo_shmmni | 4 × ロググループ数 × 同時起動DBミラーリングシステム数(注2) | 加算 |
注1) システム(Solarisマシン)全体の共用メモリの指定値であるため、Symfoware/RDBでの必要数を加算して設定する必要があります。
注2) 本バージョンでは“1”です。
セマフォ資源の設定について説明します。
カーネル構成ファイル内のseminfo_semmni、seminfo_semmns、seminfo_semmnu、seminfo_semmslおよびseminfo_semumeに以下の値を設定してください。
パラメタ名 | 必要数 | 備考 |
---|---|---|
semsys:seminfo_semmni | 4 × ロググループ数 × 同時起動DBミラーリングシステム数(注1) | 加算 |
semsys:seminfo_semmns | 13 × ロググループ数 × 同時起動DBミラーリングシステム数(注1) | 加算 |
semsys:seminfo_semmnu | 26 × ロググループ数 | 加算 |
semsys:seminfo_semmsl | 4 × ロググループ数 + Symfoware/RDB必要数(注2) | 最大値 |
semsys:seminfo_semume | 13 × ロググループ数 | 最大値 |
注1) 本バージョンでは“1”です。
注2) システム(Solarisマシン)全体のセマフォの指定値であるため、Symfoware/RDBでの必要数を加算して設定する必要があります。
注意
Symfowar/RDBのカーネル資源の以下の値を求める概算式に、“同時に実行するデータベース二重化のコマンド数”を加算してください。
クライアント多重度
クライアントプロセス多重度
同時に実行するデータベース二重化のコマンドの数は、以下の式から算出します。
同時に実行するデータベース二重化のコマンド数 = 15 + 監査対象のデータベーススペース数 + 利用者が同時に実行するコマンド数
ファイルディスクリプタ数の最大値の設定について説明します。
スケーラブルログ運用を行う場合、必要となるファイルディスクリプタ数を算出し、その値がプロセスで使用可能なファイルディスクリプタ数の最大値を上回っていた場合に変更が必要となります。
必要となるファイルディスクリプタ数の最大値は、以下の式から算出します。
必要なファイルディスクリプタ数 = 64 + ((8 + (RLCファイルの数 × 2) × ロググループ数)
ロググループ単位でRLCファイルの数が異なる場合は、“付録A 資源の見積り(詳細版)”で見積ってください。
カーネル構成ファイル内のrlim_fd_max、rlim_fd_curに以下の値を設定してください。
パラメタ名 | 必要数 | 備考 |
---|---|---|
rlim_fd_max | 必要なファイルディスクリプタ数(注) | 最大値 |
rlim_fd_cur | 必要なファイルディスクリプタ数(注) | 最大値 |
注) システム全体のプロセスの中で最大の値を設定する必要があります。
ポイント
スーパユーザの場合、ファイルディスクリプタ数の上限はulimitコマンドで一時的にファイルディスクリプタ数の上限を変更することができます。詳細については、使用しているシステムベンダのドキュメントを参照してください。
参照
Symfoware/RDBのカーネル資源につては、“セットアップガイド”を参照してください。
カーネル資源の設定方法についての詳細は、使用しているシステムベンダのドキュメントを参照してください。
共用メモリ/セマフォ資源
カーネル資源は、カーネル構成ファイル(/etc/sysctl.confファイル)に設定します。
変更後は、“sysctl -p /etc/sysctl.conf”を実行するか、システムを再起動してください。
下表を参照し、各パラメタの説明で“最大値”とあるパラメタについては、すでに設定されている値またはデフォルト値と比較して大きい方の値を設定し、“加算”とあるパラメタについては、すでにカーネル構成ファイルに設定されている値、またはデフォルト値に加算した値を設定してください。
なお、カーネル資源設定の見積り値については、Symfoware/RDBでの必要分は含まれていません。
以下の値を設定してください。
パラメタ名 | 必要数 | 備考 |
---|---|---|
kernel.shmmax | 3158840 × ロググループ数 + Symfoware/RDB必要数(注1) | 最大値 |
kernel.shmmni | 4 × ロググループ数 × 同時起動DBミラーリングシステム数(注2) | 加算 |
kernel.shmall | kernel.shmmax / メモリのページ長(注3) | 加算 |
注1) システム(Linuxマシン)全体の共用メモリの指定値であるため、Symfoware/RDBでの必要数を加算して設定する必要があります。
注2) 本バージョンでは“1”です。
注3) メモリのページ長は、x86版およびIntel64版では4キロバイトです。
/etc/sysctl.confファイル内のkernel.semパラメタに以下の形式で指定します。
kernel.sem = para1 para2 para3 para4
para1、para2、para3、para4に以下の値を設定してください。
パラメタ名 | 必要数 | 備考 |
---|---|---|
para1 | 4 × ロググループ数 + Symfoware/RDB必要数(注1) | 最大値 |
para2 | 13 × ロググループ数 × 同時起動DBミラーリングシステム数(注2) | 加算 |
para3 | すでに設定されている値(注3) |
|
para4 | 4 × ロググループ数 × 同時起動DBミラーリングシステム数(注2) | 加算 |
注1) システム(Linuxマシン)全体のセマフォの指定値であるため、Symfoware/RDBでの必要数を加算して設定する必要があります。
注2) 本バージョンでは“1”です。
注3) 値が設定されていない場合は、OSのデフォルト値を設定してください。
注意
Symfoware/RDBのカーネル資源の以下の値を求める概算式に、“同時に実行するデータベース二重化のコマンド数”を加算してください。
クライアント多重度
クライアントプロセス多重度
同時に実行するデータベース二重化のコマンドの数は、以下の式から算出します。
同時に実行するデータベース二重化のコマンド数 = 13 + (2 × ロググループ数) + 監査対象のデータベーススペース数 + 利用者が同時に実行するコマンド数
ファイルディスクリプタ数の最大値(スケーラブルログ運用の場合)
ファイルディスクリプタ数の最大値はPAMコンフィギュレーションファイル(/etc/security/limits.confファイル)に設定します。
設定ファイルの編集が完了したら、システムを再起動してください。
スケーラブルログ運用を行う場合、必要となるファイルディスクリプタ数を算出し、その値がプロセスで使用可能なファイルディスクリプタ数の最大値を上回っていた場合に変更が必要となります。
必要となるファイルディスクリプタ数の最大値は、以下の式から算出します。
必要なファイルディスクリプタ数 = 64 + ((8 + (RLCファイルの数 × 2) × ロググループ数)
ロググループ単位でRLCファイルの数が異なる場合は、“付録A 資源の見積り(詳細版)”で見積ってください。
ファイルディスクリプタ数の上限は、/etc/security/limits.confファイル内のnofileパラメタに以下の形式で指定します。
user1 - nofile nnnnn
user1、nnnnnには以下の値を設定してください。
パラメタ名 | 必要数 | 備考 |
---|---|---|
user1 | ファイルディスクリプタ数の最大値を指定するユーザ。 |
|
nnnnn | 必要なファイルディスクリプタ数(注) | 最大値 |
注) 該当ユーザまたはシステム全体のプロセスの中で最大値を設定してください。
ポイント
スーパユーザの場合、ファイルディスクリプタ数の上限はulimitコマンドで一時的にファイルディスクリプタ数の最大値を変更することができます。詳細については、使用しているシステムベンダのドキュメントを参照してください。
参照
Symfoware/RDBのカーネル資源につては、“セットアップガイド”を参照してください。
カーネル資源の設定方法についての詳細は、使用しているシステムベンダのドキュメントを参照してください。