ページの先頭行へ戻る
Systemwalker Centric Manager V17.0.1 導入手引書

3.8 システムパラメタのチューニング【Solaris版/Linux版】

運用管理サーバでは、システムパラメタのチューニングを行う必要があります。チューニングが必要なシステムパラメタとその値については、以下の表を参照してください。

パラメタにより、すでに設定されている値(初期値)に加算する場合と、すでに設定されている値と比較し大きい方の値(最大)を設定する場合があります。加算で見積もった値がシステムの上限値より大きくなる場合は、システムの上限値を設定します。

各パラメタがどちらに当たるかは、表の「種別」を参照してください。

詳細については、SolarisおよびRed Hat Enterprise Linuxのマニュアルを参照してください。

Solaris

Solaris 9の場合

システムパラメタのチューニング値

システムパラメタを編集するには、/etc/systemファイルにチューニングのためのレコードを以下のように追加します。

なお、表にあるパラメタがすでに設定されている場合、Solarisの各バージョンのマニュアルを参照し、チューニングを行ってください。

共有メモリ

パラメタ

説明

種別

shmsys:shminfo_shmmax

共有メモリセグメントの最大サイズ

90177536

最大

shmsys:shminfo_shmmni

システム全体で作成できる共有メモリセグメントの最大数

50

加算

メッセージキュー

パラメタ

説明

種別

msgsys:msginfo_msgmax

メッセージの最大サイズ

16384

最大

msgsys:msginfo_msgmnb

待ち行列上の最大バイト数
(注1)

32768 または
式1の大きい方の値

最大

msgsys:msginfo_msgmni

メッセージ待ち識別子の数

1024

加算

msgsys:msginfo_msgtql

メッセージのヘッダ数
(注2)

式2

加算

セマフォ

パラメタ

説明

種別

semsys:seminfo_semmni

セマフォ識別子の数

2048

加算

semsys:seminfo_semmns

システム内のセマフォ数

2905

加算

semsys:seminfo_semmnu

システム内のundo構造体の数

2048

加算

semsys:seminfo_semmsl

セマフォ識別子ごとの最大セマフォ数

290

最大

semsys:seminfo_semopm

セマフォコールごとの最大操作数

100

最大

semsys:seminfo_semume

プロセスごとの最大undoエントリ数

2048

最大

入出力

パラメタ

説明

種別

rlim_fd_max

ファイル記述子数限度

1024

最大

rlim_fd_cur

ファイル記述子数

1024

最大

注1)

式1の詳細は、以下のとおりです。

式1=(サーバ間通信の接続数×2+クライアント間通信の接続数+コマンド実行数)×208

以下の接続数とコマンド実行数について、同時に実行される数を基準に計算式に当てはめてください。

サーバ間通信の接続数

サーバ間通信は資源配付サーバとの間で通信が発生する処理です。

配下のサーバからの通知や資源の配付、上位サーバへの通知など、同時に通信する接続数になります。

クライアント間通信の接続数

クライアント間通信は、資源配付クライアントとの間で通信が発生する処理です。

クライアントへの資源の配付やクライアントからの通知など、同時に通信する接続数になります。

コマンド実行数

同時に実行する資源配付コマンドの数になります。

注2)

式2の詳細は、以下のとおりです。

式2=資源配付の通信あて先数+20+msgmnbのチューニング値/100


チューニング作業手順

  1. 以下のコマンドを使用して現在システムに設定されている上記表に該当するパラメタの設定値を確認します。

    #/usr/sbin/sysdef
  2. 上記の表(システムパラメタのチューニング値)を参照し、現在の設定値と比較を行い、パラメタごとに最大、加算の種別を考慮して、適切な設定値を算出します。

  3. /etc/systemを編集します。

    システムパラメタをチューニングするために、/etc/systemファイルにチューニングのためのレコードを、以下の例のように編集します。

    )

    Solaris 9上に運用管理サーバだけを導入し、資源配付の通信あて先数が128の場合

    set shmsys:shminfo_shmmax = 90177536
    set shmsys:shminfo_shmmni = 150
    
    set msgsys:msginfo_msgmax = 16384
    set msgsys:msginfo_msgmnb = 32768
    set msgsys:msginfo_msgmni = 1074
    set msgsys:msginfo_msgtql = 516
    
    set semsys:seminfo_semmni = 2058
    set semsys:seminfo_semmns = 2905
    set semsys:seminfo_semmnu = 2078
    set semsys:seminfo_semmsl = 290
    set semsys:seminfo_semopm = 100
    set semsys:seminfo_semume = 2048
    
    set rlim_fd_max = 1024
    set rlim_fd_cur = 1024
  4. システムパラメタを変更した後は、システムの再起動が必要です。再起動のコマンドを以下に示します。

    # cd /
    # /usr/sbin/shutdown -y -i6 -g0
  5. システム再起動後、設定したシステムパラメタが反映されていることを、以下のコマンドの出力から確認します。

    # /usr/sbin/sysdef

    確認コマンド実行例)

    #/usr/sbin/sysdef
          ・
          ・
        (省略)
          ・
          ・
    *
    * Process Resource Limit Tunables (Current:Maximum)
    *
    0x0000000000000400:0x0000000000000400   file descriptors
    *
    * Streams Tunables
    *
         9  maximum number of pushes allowed (NSTRPUSH)
     65536  maximum stream message size (STRMSGSZ)
      1024  max size of ctl part of message (STRCTLSZ)
    *
    * IPC Messages
    *
     16384  max message size (MSGMAX)
     32768  max bytes on queue (MSGMNB)
      1074  message queue identifiers (MSGMNI)
       516  system message headers (MSGTQL)
    *
    * IPC Semaphores
    *
      2058  semaphore identifiers (SEMMNI)
      2905  semaphores in system (SEMMNS)
      2078  undo structures in system (SEMMNU)
       290  max semaphores per id (SEMMSL)
       100  max operations per semop call (SEMOPM)
      2048  max undo entries per process (SEMUME)
     32767  semaphore maximum value (SEMVMX)
     16384  adjust on exit max value (SEMAEM)
    *
    * IPC Shared Memory
    *
     90177536       max shared memory segment size (SHMMAX)
       150  shared memory identifiers (SHMMNI)
          ・
          ・
        (省略)
          ・
          ・

Solaris 10/Solaris 11の場合

Systemwalker Centric Managerは、以下のプロジェクト配下で動作します。

systemプロジェクト

OS初期設定状態で存在するデーモンなどが動作するプロジェクト

user.rootプロジェクト

OS初期設定状態で、root権限で動作するプロセスが所属するプロジェクト

システムパラメタのチューニング値

パラメタ

説明

種別

特権

project.max-msg-ids

メッセージ待ち識別子の数

1024

加算

特権レベル

process.max-file-descriptor

プロセスで使用できる最大のファイル記述子インデックス

1024

最大

特権レベル

process.max-msg-qbytes

待ち行列上の最大バイト数
(注3)

32768
または 式3 の大きい方の値

最大

特権レベル

process.max-sem-nsems

セマフォ識別子ごとの最大セマフォ数

290

最大

特権レベル

process.max-sem-ops

セマフォコールごとの最大操作数

100

最大

特権レベル

project.max-sem-ids

セマフォ識別子の数

2048

加算

特権レベル

project.max-shm-memory

共有メモリセグメントの最大サイズ

134217728

加算

特権レベル

備考)

特権レベルは、/etc/projectに「privileged」を指定し、基本レベルは、「basic」を指定します。

注3)

式3の詳細は、以下のとおりです。

式3=(サーバ間通信の接続数×2+クライアント間通信の接続数+コマンド実行数)×208

以下の接続数とコマンド実行数について、同時に実行される数を基準に計算式に当てはめてください。

  • サーバ間通信の接続数
    サーバ間通信は資源配付サーバとの間で通信が発生する処理です。
    配下サーバからの通知や資源の配付、上位サーバへの通知など、同時に通信する接続数になります。

  • クライアント間通信の接続数
    クライアント間通信は、資源配付クライアントとの間で通信が発生する処理です。
    クライアントへの資源の配付やクライアントからの通知など、同時に通信する接続数になります。

  • コマンド実行数
    同時に実行する資源配付コマンドの数になります。

システムパラメタの設定

システムパラメタを編集するには、/etc/projectファイルを編集します。

システムパラメタを設定する際には、システムの初期値および、設定可能な値の上限を確認した後、値を確認してください。確認方法の例は以下のとおりです。

# projects -l
system
        projid : 0
        comment: “System account”
        users  : (none)
        groups : (none)
        attribs: 
user.root
        projid : 1
        comment: “root user”
        users  : root
        groups : root
        attribs:
noproject
        projid : 2
        comment: “”
        users  : (none)
        groups : (none)
        attribs:
default
        projid : 3
        comment: “Default project setting”
        users  : (none)
        groups : (none)
        attribs:                  ← “attribs”にエントリがないプロジェクトを確認
# newtask -p default
# prctl $$
process: 1000: sh
NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT
process.max-port-events
        privileged      65.5K       -   deny                                 -
        system          2.15G     max   deny                                 -
process.max-msg-messages
        privileged      8.19K       -   deny                                 -
        system          4.29G     max   deny                                 -
       system          16.8M     max   deny                                 -
…

/etc/projectファイル編集例)

/etc/projectファイルの編集例を以下に示します。

なお、systemプロジェクトとuser.rootプロジェクトの設定を編集する場合は、各プロジェクトの設定内容が1行となるように記載してください。

system:0:System account:::project.max-msg-ids=(privileged,1152,deny);
process.max-file-descriptor=(privileged,2048,deny);process.max-msg-qbytes=
(privileged,65536,deny);process.max-sem-nsems=(privileged,512,deny);
process.max-sem-ops=(privileged,512,deny);project.max-sem-ids=
(privileged,2176,deny);project.max-shm-memory=(privileged,1009778688,deny)
user.root:1:root user:root:root:project.max-msg-ids=(privileged,1152,deny);
process.max-file-descriptor=(privileged,2048,deny);process.max-msg-qbytes=
(privileged,65536,deny);process.max-sem-nsems=(privileged,512,deny);
process.max-sem-ops=(privileged,512,deny);project.max-sem-ids=
(privileged,2176,deny);project.max-shm-memory=(privileged,1009778688,deny)

システムパラメタの確認

上記設定をした後、以下のコマンドにより設定情報を確認できます。

# projects -l

確認コマンド実行例)

  
# projects -l
system
        projid : 0
        comment: "System account"
        users  : (none)
        groups : (none)
        attribs: project.max-msg-ids=(privileged,1152,deny)
                 process.max-file-descriptor=(privileged,2048,deny)
                 process.max-msg-qbytes=(privileged,65536,deny)
                 process.max-sem-nsems=(privileged,512,deny)
                 process.max-sem-ops=(privileged,512,deny)
                 project.max-sem-ids=(privileged,2176,deny)
                 project.max-shm-memory=(privileged,1009778688,deny)
user.root
        projid : 1
        comment: "root user"
        users  : root
        groups : root
        attribs: project.max-msg-ids=(privileged,1152,deny)
                 process.max-file-descriptor=(privileged,2048,deny)
                 process.max-msg-qbytes=(privileged,65536,deny)
                 process.max-sem-nsems=(privileged,512,deny)
                 process.max-sem-ops=(privileged,512,deny)
                 project.max-sem-ids=(privileged,2176,deny)
                 project.max-shm-memory=(privileged,1009778688,deny)
noproject
        projid : 2
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
default
        projid : 3
        comment: "Default project setting"
        users  : (none)
        groups : (none)
        attribs:

Linux

システムパラメタのチューニング値Red Hat Enterprise Linux 7以降の場合

セマフォ

セマフォの設定値は、各パラメタ値を以下の形式で指定します。

kernel.sem = para1 para2 para3 para4

パラメタ

説明

種別

para1

セマフォ識別子あたりの最大セマフォ数

290

最大

para2

システム全体のセマフォ数

3312

加算

para3

セマフォコールあたりの最大演算子数

50

最大

para4

システム全体のセマフォ識別子数

1318

加算

メッセージキュー

パラメタ

説明

種別

kernel.msgmnb

1つのメッセージキューに保持できるメッセージの最大値
(注4)

32768
または 式4 の大きい方の値

最大

kernel.msgmni

メッセージキューIDの最大値

545

加算

kernel.msgmax

メッセージの最大サイズ

16384

最大

注4)

式4の詳細は、以下のとおりです。

式4=(サーバ間通信の接続数×2+クライアント間通信の接続数+コマンド実行数)×224

以下の接続数とコマンド実行数について、同時に実行される数を基準に計算式に当てはめてください。

サーバ間通信の接続数

サーバ間通信は資源配付サーバとの間で通信が発生する処理です。

配下のサーバからの通知や資源の配付、上位サーバへの通知など、同時に通信する接続数になります。

クライアント間通信の接続数

クライアント間通信は、資源配付クライアントとの間で通信が発生する処理です。

クライアントへの資源の配付やクライアントからの通知など、同時に通信する接続数になります。

コマンド実行数

同時に実行する資源配付コマンドの数になります。

共有メモリ

パラメタ

説明

種別

kernel.shmmni

共有メモリセグメントの最大数

512

加算

kernel.shmmax

共有メモリの最大セグメントサイズ

20823124

最大

kernel.shmall

システム上で一度に使用可能な共有メモリの合計

90000

加算

チューニング作業手順Red Hat Enterprise Linux 7以降の場合

  1. 以下のコマンドを使用して現在システムに設定されている上記表に該当するパラメタの設定値を確認します。

    # /sbin/sysctl -a

    例)

    # /sbin/sysctl -a
          ・
        (省略)
          ・
    kernel.sem = 250       32000   32       128
    kernel.msgmnb = 65536
    kernel.msgmni = 16
    kernel.msgmax = 65536
    kernel.shmmni = 4096
    kernel.shmall = 268435456
    kernel.shmmax = 4294967295
          ・
        (省略)
          ・
  2. 上記“システムパラメタのチューニング値”を参照し、現在の設定値と比較を行い、パラメタごとに最大、加算の種別を考慮して、適切な設定値を算出します。

  3. /etc/sysctl.d/ に新しい設定ファイルを作成します。

    例)

    # vim /etc/sysctl.d/custom.conf
  4. 作成した設定ファイルを編集します。
    システムパラメタをチューニングするために、チューニングのためのレコードを、以下の例のように編集します。

    )

    kernel.sem=290 35312 50 1446
    kernel.msgmni=561
    kernel.shmmni=4608
  5. 設定ファイルを保存します。

  6. 上記設定を有効にするために、以下のどちらかの方法を実行します。

    方法1)
    システムをリブートして設定を反映

    # cd /
    # /sbin/shutdown -r now

    方法2)
    /sbin/sysctl -p を使用して設定を反映

    # /sbin/sysctl -p /etc/sysctl.d/custom.conf

    方法2のコマンドを使用した場合、リブートの必要はありません。

  7. 設定したシステムパラメタが反映されていることを、以下のコマンドの出力から確認します。

    # /sbin/sysctl -a

    確認コマンド実行例)

    # /sbin/sysctl -a
          ・
        (省略)
          ・
    kernel.sem = 290       35312   50       1446
    kernel.msgmnb = 65536
    kernel.msgmni = 561
    kernel.msgmax = 65536
    kernel.shmmni = 4608
    kernel.shmall = 268435456
    kernel.shmmax = 4294967295
          ・
        (省略)
          ・