ページの先頭行へ戻る
Symfoware Server V12.1.x データベース二重化導入運用ガイド
FUJITSU Software

4.3.3 カーネル資源の見積り

以下のカーネル資源の見積りと設定方法について説明します。

なお、見積りで使用するロググループ数は、監査ログ用ロググループを除いた値としてください。

4.3.3.1 Solarisの場合

プロジェクトデータベース(/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

モニタデーモンを起動するユーザが属するプロジェクト
(username:ユーザ名)

default

プロジェクトが未定義の一般ユーザが属するプロジェクト

ファイルディスクリプタ数の最大値(スケーラブルログ運用を行う場合)

スケーラブルログ運用を行う場合、ファイルディスクリプタ数の最大値を、モニタデーモンを起動するユーザのプロジェクトに設定してください。

project名

概要

user.username

モニタデーモンを起動するユーザが属するプロジェクト
(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プロジェクトに共用メモリの獲得方式を一括獲得方式にする場合の設定例を示します。

  1. 共用メモリ資源のパラメタ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
  2. セマフォ資源のパラメタ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
  3. 上記で設定した値が正しいか以下のコマンドで確認してください。

    # 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)
    #
  4. 上記手順1.~3.をsystem、モニタデーモンを起動するユーザ、およびdefaultプロジェクトへも実施してください。
    また、ユーザ定義のプロジェクトが作成されている場合は、同様に実施してください。
    ユーザ定義のプロジェクトが作成されていない場合は、projaddコマンドを使用して追加してください。

ファイルディスクリプタ数の最大値(スケーラブルログ運用を行う場合)

ファイルディスクリプタ数の最大値の設定について説明します。

スケーラブルログ運用を行う場合、必要となるファイルディスクリプタ数を算出し、その値がプロセスで使用可能なファイルディスクリプタ数の最大値を上回っていた場合に変更が必要となります。

必要となるファイルディスクリプタ数の最大値は、以下の式から算出します。

必要なファイルディスクリプタ数 = 64 + ((8 + (RLCファイルの数 × 2) × ロググループ数)

ロググループ単位でRLCファイルの数が異なる場合は、“付録A 資源の見積り(詳細版)”で見積ってください。

プロジェクトデータベース内のprocess.max-file-descriptorに以下の値をコマンドで設定してください。

パラメタ名

必要数

備考

process.max-file-descriptor

必要なファイルディスクリプタ数

最大値

設定例

以下にprojmodコマンドを使用して、モニタデーモンを起動するユーザ(user001)が属するプロジェクトに、ファイルディスクリプタ数の最大値を設定する例を示します。

  1. ファイルディスクリプタ数の最大値のパラメタprocess.max-file-descriptorに3000を設定します。

    # projmod -s -K 'process.max-file-descriptor=(basic,3000,deny)' user.user001
  2. 上記で設定した値が正しいか、以下のコマンドで確認してください。

    # 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のカーネル資源につては、“セットアップガイド”を参照してください。

  • カーネル資源の設定方法についての詳細は、使用しているシステムベンダのドキュメントを参照してください。

4.3.3.2 Linuxの場合

共用メモリ/セマフォ資源

カーネル資源は、カーネル構成ファイル(/etc/sysctl.confファイル)に設定します。
変更後は、“sysctl -p /etc/sysctl.conf”を実行するか、システムを再起動してください。

下表を参照し、各パラメタの説明で“最大値”とあるパラメタについては、すでに設定されている値またはデフォルト値と比較して大きい方の値を設定し、“加算”とあるパラメタについては、すでにカーネル構成ファイルに設定されている値、またはデフォルト値に加算した値を設定してください。

なお、カーネル資源設定の見積り値については、Symfoware/RDBでの必要分は含まれていません。

共用メモリ資源

以下の値を設定してください。

表4.6 共用メモリ資源

パラメタ名

必要数

備考

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に以下の値を設定してください。

表4.7 セマフォ資源

パラメタ名

必要数

備考

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には以下の値を設定してください。

表4.8 ファイルディスクリプタ数の上限

パラメタ名

必要数

備考

user1

ファイルディスクリプタ数の最大値を指定するユーザ。
データベース管理者を指定してください。

  

nnnnn

必要なファイルディスクリプタ数(注)

最大値

注) 該当ユーザまたはシステム全体のプロセスの中で最大値を設定してください。

ポイント

スーパユーザの場合、ファイルディスクリプタ数の上限はulimitコマンドで一時的にファイルディスクリプタ数の最大値を変更することができます。詳細については、使用しているシステムベンダのドキュメントを参照してください。

参照

  • Symfoware/RDBのカーネル資源につては、“セットアップガイド”を参照してください。

  • カーネル資源の設定方法についての詳細は、使用しているシステムベンダのドキュメントを参照してください。