ページの先頭行へ戻る
Symfoware Server V10.0.0 セットアップガイド

1.3.2 カーネル編集

Symfoware/RDBを動作させるには、Symfoware/RDBの動作環境の定義に応じたカーネル資源を確保しておく必要があります。

Symfoware/RDBを動作させるために設定が必要なカーネル資源には、以下のものがあります。

これらのカーネル資源の設定方法について、OS別に説明します。

Solaris1.3.2.1 Solaris(TM)の場合

プロジェクトデータベース(/etc/projectファイル)または、カーネル構成ファイル(/etc/systemファイル)のどちらか一方に設定します。システム全体で設定するファイルを統一することを推奨します。

注意

  • Solaris 9では、プロジェクトデータベース(/etc/projectファイル)を利用することはできません。

  • プロジェクトデータベース(/etc/projectファイル)または、カーネル構成ファイル(/etc/systemファイル)に値が設定されている場合は、値を確認し、追加や変更を行ってください。プロジェクトデータベースおよび、カーネル構成ファイルに値が設定されていない場合は、OSのデフォルト値が使用されています。この場合には、OSのデフォルト値を基準にしてシステムで使用する構成ファイルへ追加や変更を行ってください。OSが使用している値は、sysdefコマンドまたはprctlコマンドにより表示できます。
    sysdefコマンドまたはprctlコマンドの詳細については、OSのmanコマンドで確認してください。

  • 各パラメタの説明で、“最大値”とあるパラメタについては、すでに設定されている値またはデフォルト値と比較して大きい方の値を設定し、“加算”とあるパラメタについては、すでに設定されている値またはデフォルト値に加算した値を設定してください。

  • “一括獲得方式”と“分割獲得方式”の選択基準については、“1.1.3 プロセス構成”を参照してください。

  • クラスタ環境の場合、クラスタシステムが推奨しているカーネルの編集方法で設定してください。

  • クラスタ環境は、global zoneで動作可能です。

プロジェクトデータベース(/etc/projectファイル)を利用する場合

プロジェクトデータベースを利用する場合は、system、user.rootおよび、defaultプロジェクトすべてに値を設定してください。なお、すでにユーザ定義のプロジェクトを作成している場合は、同様にユーザ定義のプロジェクトへも値を設定してください。また、プロジェクトデータベースを使用する場合は、以下を参照し、projmodコマンドを使用して値を設定してください。

Project名

概要

system

OS起動時のデーモンやcronのプロセスが属するプロジェクト

user.root

rootユーザが属するプロジェクト

default

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

参照

プロジェクトデータベース内のパラメタの詳細は、システムベンダのドキュメントを参照してください。

共用メモリ資源

共用メモリ資源の設定について説明します。

共用メモリの獲得方式を一括獲得方式にする場合

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

パラメタ名

必要数

備考

project.max-shm-memory

RDBEXTMEMの値 × 1024 (注1)

加算

project.max-shm-ids

(ファンクションルーチン多重度 + 10) × 同時起動RDBシステム数 (注2)

加算

注1) RDBEXTMEMの詳細は、“4.1 RDB構成パラメタファイルによる定義”を参照してください。

注2) ファンクションルーチン多重度は、ファンクションルーチンを同時に実行するアプリケーションのコネクション数です。


共用メモリの獲得方式を分割獲得方式にする場合

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

パラメタ名

必要数

備考

project.max-shm-memory

COMMUNICATION_BUFFERの値 × 1024 + 16384 (注1)

加算

project.max-shm-ids

(クライアント多重度 + 10 + ファンクションルーチン多重度) × 同時起動RDBシステム数 (注2) (注3)

加算

注1) COMMUNICATION_BUFFERの詳細は、“4.2 システム用の動作環境ファイルによる定義”を参照してください。上記の計算式で算出された値が物理メモリ量の1/4より小さい場合は、物理メモリ量の1/4以上の値を指定してください。

注2) クライアント多重度は、同時に実行するアプリケーションおよびRDBコマンドの数を規定する値となります。この値の概算方法は以下のようになります。

クライアント多重度 = 同時にローカルアクセスを行うすべてのアプリケーション
                       のコネクション数の合計値
                     + 同時に実行するRDBコマンド数

注3) ファンクションルーチン多重度は、ファンクションルーチンを同時に実行するアプリケーションのコネクション数です。

セマフォ資源

セマフォ資源の設定について説明します。

共用メモリの獲得方式を一括獲得方式にする場合

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

パラメタ名

必要数

備考

project.max-sem-ids

同時起動RDBシステム数 × 300

加算

process.max-sem-nsems

(RDBCNTNUM + 3) / 15 (注1) (注2)

最大値

注1) RDBCNTNUMの詳細は、“4.1 RDB構成パラメタファイルによる定義”を参照してください。

注2) 割り切れない場合は、小数点以下を切り上げて設定してください。ただし、上記の計算式で算出された値が512より小さい場合には、512以上の値を設定してください。


共用メモリの獲得方式を分割獲得方式にする場合

プロジェクトデータベース内のproject.max-sem-ids、process.max-sem-nsemsに以下の値を設定してください。

パラメタ名

必要数

備考

project.max-sem-ids

(クライアント多重度 × 2 + 300) × 同時起動RDBシステム数 (注)

加算

process.max-sem-nsems

512

最大値

注) クライアント多重度は同時に実行するアプリケーションおよびRDBコマンドの数を規定する値となります。この値の概算方法は以下のようになります。

クライアント多重度 = 同時にローカルアクセスを行うすべての
                       アプリケーションのコネクション数の合計値
                     + 同時に実行するRDBコマンド数
メッセージキュー資源

プロジェクトデータベース内のprocess.max-msg-qbytes、project.max-msg-ids、およびprocess.max-msg-messagesに以下の値をコマンドで設定してください。

パラメタ名

必要数

備考

process.max-msg-qbytes

65536

最大値

project.max-msg-ids

2 × 同時起動RDBシステム数

加算

process.max-msg-messages

クライアント多重度 × 同時起動RDBシステム数 (注)

加算

注) クライアント多重度は同時に実行するアプリケーションおよびRDBコマンドの数を規定する値となります。この値の概算方法は以下のようになります。

クライアント多重度 = 同時にローカルアクセスを行うすべてのアプリケーション
                       のコネクション数の合計値
                     + 同時に実行するRDBコマンド数
設定例

以下に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. メッセージキュー資源のパラメタprocess.max-msg-qdbytesに65536、project.max-msg-idsに1K、process.max-msg-messagesに10Kを設定します。

    # projmod -s -K 'process.max-msg-qdbytes=(privileged,65536,deny)' user.root
    # projmod -s -K 'project.max-msg-ids=(privileged,1K,deny)' user.root
    # projmod -s -K 'process.max-msg-messages=(privileged,10K,deny)' user.root
  4. 上記で設定した値が正しいか以下のコマンドで確認してください。

    # 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)
                     process.max-sem-nsems=(privileged,512,deny)
                     project.max-msg-ids=(privileged,1000,deny)
                     project.max-sem-ids=(privileged,1000,deny)
                     project.max-shm-ids=(privileged,1000,deny)
                     project.max-shm-memory=(privileged,2147483648,deny)
    #
  5. 上記手順1.~4.をsystemおよび、defaultプロジェクトへも実施してください。また、ユーザ定義のプロジェクトが作成されている場合は、同様に実施してください。

参照

プロジェクトデータベースの設定方法およびprojmodコマンドの詳細については、使用しているシステムベンダのドキュメントを参照してください。

カーネル構成ファイル(/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

RDBEXTMEMの値 × 1024 (注1)

最大値

shmsys:shminfo_shmmni

(ファンクションルーチン多重度 + 10) × 同時起動RDBシステム数 (注2)

加算

注1) RDBEXTMEMの詳細は、“4.1 RDB構成パラメタファイルによる定義”を参照してください。

注2) ファンクションルーチン多重度は、ファンクションルーチンを同時に実行するアプリケーションのコネクション数です。


共用メモリの獲得方式を分割獲得方式にする場合

カーネル構成ファイル内のshminfo_shmmax、shminfo_shmmniに以下の値を設定してください。

パラメタ名

必要数

備考

shmsys:shminfo_shmmax

COMMUNICATION_BUFFERの値 × 1024 + 16384 (注1)

最大値

shmsys:shminfo_shmmni

(クライアント多重度 + 10 + ファンクションルーチン多重度) × 同時起動RDBシステム数 (注2) (注3)

加算

注1) COMMUNICATION_BUFFERの詳細は、“4.2 システム用の動作環境ファイルによる定義”を参照してください。上記の計算式で算出された値が20480より小さい場合は、20480以上の値を指定してください。

注2) クライアント多重度は、同時に実行するアプリケーションおよびRDBコマンドの数を規定する値となります。この値の概算方法は以下のようになります。

クライアント多重度 = 同時にローカルアクセスを行うすべてのアプリケーション
                       のコネクション数の合計値
                     + 同時に実行するRDBコマンド数

注3) ファンクションルーチン多重度は、ファンクションルーチンを同時に実行するアプリケーションのコネクション数です。

セマフォ資源

セマフォ資源の設定について説明します。

共用メモリの獲得方式を一括獲得方式にする場合

カーネル構成ファイル内のseminfo_semmni、seminfo_semmns、seminfo_semmnuおよびseminfo_semmslに以下の値を設定してください。

パラメタ名

必要数

備考

semsys:seminfo_semmni

同時起動RDBシステム数 × 300

加算

semsys:seminfo_semmns

同時起動RDBシステム数 × (400 + RDBCNTNUM) (注1)

加算

semsys:seminfo_semmnu

クライアントプロセス多重度 (注2)

加算

semsys:seminfo_semmsl

(RDBCNTNUM + 3) / 15 (注3)

最大値

注1) RDBCNTNUMの詳細は、“4.1 RDB構成パラメタファイルによる定義”を参照してください。

注2) クライアントプロセス多重度は、同時に実行するアプリケーションおよびRDBコマンド数を規定する値となります。この値の概算方法は以下のようになります。

クライアントプロセス多重度 = 同時にローカルアクセスを行うアプリケーション
                               のプロセス数
                             + 同時に実行するRDBコマンド数

注3) 割り切れない場合は、小数点以下を切り上げて設定してください。ただし、上記の計算式で算出された値が25より小さい場合には、25以上の値を設定してください。


共用メモリの獲得方式を分割獲得方式にする場合

カーネル構成ファイル内のseminfo_semmni、seminfo_semmns、seminfo_semmnuおよびseminfo_semmslに以下の値を設定してください。

パラメタ名

必要数

備考

semsys:seminfo_semmni

(クライアント多重度 × 2 + 300) × 同時起動RDBシステム数 (注)

加算

semsys:seminfo_semmns

(クライアント多重度 × 4 + 300) × 同時起動RDBシステム数 (注)

加算

semsys:seminfo_semmnu

クライアントプロセス多重度 (注)

加算

semsys:seminfo_semmsl

25

最大値

注) クライアント多重度およびクライアントプロセス多重度は同時に実行するアプリケーションおよびRDBコマンドの数を規定する値となります。この値の概算方法は以下のようになります。

クライアント多重度 = 同時にローカルアクセスを行うすべての
                       アプリケーションのコネクション数の合計値
                     + 同時に実行するRDBコマンド数
クライアントプロセス多重度 = 同時にローカルアクセスを行う
                               アプリケーションのプロセス数
                             + 同時に実行するRDBコマンド数
メッセージキュー資源

カーネル構成ファイル内のmsginfo_msgmax、msginfo_msgmnb、msginfo_msgmni、およびmsginfo_msgtqlに以下の値を設定してください。

パラメタ名

必要数

備考

msgsys:msginfo_msgmax

128

最大値

msgsys:msginfo_msgmnb

4096

最大値

msgsys:msginfo_msgmni

2 × 同時起動RDBシステム数

加算

msgsys:msginfo_msgtql

クライアント多重度 × 同時起動RDBシステム数 (注)

加算

注) クライアント多重度は同時に実行するアプリケーションおよびRDBコマンドの数を規定する値となります。この値の概算方法は以下のようになります。

クライアント多重度 = 同時にローカルアクセスを行うすべてのアプリケーション
                       のコネクション数の合計値
                     + 同時に実行するRDBコマンド数

参照

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

Linux1.3.2.2 Linuxの場合

/etc/sysctl.confを編集し、パラメタ値を変更します。変更後は、“sysctl -p /etc/sysctl.conf”を実行するか、システムを再起動してください。

/etc/sysctl.confファイル内のパラメタの指定形式を以下に示します。

パラメタ名 = 値

注意

  • /etc/sysctl.confに値が設定されていない場合は、OSのデフォルト値が使用されています。この場合には、OSのデフォルト値を基準にして追加や変更を行ってください。OSが使用している値は、sysctlコマンドのaオプションにより表示できます。sysctlコマンドの詳細については、OSのmanコマンドで確認してください。

  • 各パラメタの説明で、“最大値”とあるパラメタについては、すでに設定されている値またはデフォルト値と比較して大きい方の値を設定し、“加算”とあるパラメタについては、すでに設定されている値またはデフォルト値に加算した値を設定してください。

  • “一括獲得方式”と“分割獲得方式”の選択基準については、“1.1.3 プロセス構成を参照してください。

共用メモリ資源

共用メモリ資源の設定について説明します。

共用メモリの獲得方式を一括獲得方式にする場合

/etc/sysctl.confファイル内のkernel.shmmax、kernel.shmall、kernel.shmmniパラメタに以下の値を設定してください。

パラメタ名

必要数

備考

kernel.shmmax

RDBEXTMEM × 1024 (注1)

最大値

kernel.shmall

kernel.shmmax / メモリのページ長 (注2)

加算

kernel.shmmni

(ファンクションルーチン多重度 + 10) × 同時起動RDBシステム数 (注3)

加算

注1) RDBEXTMEMの詳細は、“4.1 RDB構成パラメタファイルによる定義”を参照してください。

注2) メモリのページ長は、4キロバイトです。

注3) ファンクションルーチン多重度は、ファンクションルーチンを同時に実行するアプリケーションのコネクション数です。

共用メモリの獲得方式を分割獲得方式にする場合

/etc/sysctl.confファイル内のkernel.shmmax、kernel.shmall、kernel.shmmniパラメタに以下の値を設定してください。

パラメタ名

必要数

備考

kernel.shmmax

COMMUNICATION_BUFFERの値 × 1024 + 16384 (注1)

最大値

kernel.shmall

kernel.shmmax / メモリのページ長 (注2)

加算

kernel.shmmni

(クライアント多重度 + 10 + ファンクションルーチン多重度) × 同時起動RDBシステム数 (注3) (注4)

加算

注1) COMMUNICATION_BUFFERの詳細は、“4.2 システム用の動作環境ファイルによる定義”を参照してください。上記の計算式で算出された値が20480より小さい場合は、20480以上の値を指定してください。

注2) メモリのページ長は、4キロバイトです。

注3) クライアント多重度は、同時に実行するアプリケーションおよびRDBコマンドの数を規定する値となります。この値の概算方法は以下のようになります。

クライアント多重度 = 同時にローカルアクセスを行うすべてのアプリケーション
                       のコネクション数の合計値
                     + 同時に実行するRDBコマンド数

注4) ファンクションルーチン多重度は、ファンクションルーチンを同時に実行するアプリケーションのコネクション数です。

セマフォ資源

セマフォ資源の設定について説明します。

共用メモリの獲得方式を一括獲得方式にする場合

/etc/sysctl.confファイル内のkernel.semパラメタに以下の形式で指定します。

kernel.sem = para1 para2 para3 para4

para1、para2、para3、para4に以下の値を設定してください。

パラメタ名

必要数

備考

para1

(RDBCNTNUM + 3) / 15 (注1)

最大値

para2

同時起動RDBシステム数 × (400 + RDBCNTNUM) (注2)

加算

para3

すでに設定されている値 (注3)

  

para4

同時起動RDBシステム数 × 300

加算

注1) 割り切れない場合は、小数点以下を切り上げて設定してください。ただし、この値が25より小さい場合には、25以上の値を設定してください。

注2) RDBCNTNUMの詳細は、“4.1 RDB構成パラメタファイルによる定義”を参照してください。

注3) 値が設定されていない場合は、OSのデフォルト値を設定してください。

共用メモリの獲得方式を分割獲得方式にする場合

/etc/sysctl.confファイル内のkernel.semパラメタに以下の形式で指定します。

kernel.sem = para1 para2 para3 para4

para1、para2、para3、para4に以下の値を設定してください。

パラメタ名

必要数

備考

para1

25

最大値

para2

(クライアント多重度 × 4 + 300) × 同時起動RDBシステム数 (注1)

加算

para3

すでに設定されている値 (注2)

  

para4

(クライアント多重度 × 2 + 300) × 同時起動RDBシステム数 (注1)

加算

注1) クライアント多重度は同時に実行するアプリケーションおよびRDBコマンドの数を規定する値となります。この値の概算方法は以下のようになります。

クライアント多重度 = 同時にローカルアクセスを行うすべての
                       アプリケーションのコネクション数の合計値
                     + 同時に実行するRDBコマンド数

注2) 値が設定されていない場合は、OSのデフォルト値を設定してください。

メッセージキュー資源

/etc/sysctl.confファイル内のkernel.msgmax、kernel.msgmnb、kernel.msgmniパラメタに以下の値を設定してください。

パラメタ名

必要数

備考

kernel.msgmax

128

最大値

kernel.msgmnb

4096

最大値

kernel.msgmni

2 × 同時起動RDBシステム数

加算