ページの先頭行へ戻る
Systemwalker Centric Manager 導入手引書
FUJITSU Software

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

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

パラメタにより、すでに設定されている値(初期値)に加算する場合と、すでに設定されている値と比較し大きい方の値(最大)を設定する場合があります(加算の場合、設定のシステム上限値も確認してください)。各パラメタがどちらに当たるかは、表の「種別」を参照してください。

詳細についてはSolarisのマニュアルなどを参照してください。

Solaris

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

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

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

  • 共有メモリ

    パラメタ

    説明

    種別

    shmsys:shminfo_shmmax

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

    90,177,536

    最大

    shmsys:shminfo_shmmni

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

    50

    加算

  • メッセージキュー

    パラメタ

    説明

    種別

    msgsys:msginfo_msgmax

    メッセージの最大サイズ

    16,384

    最大

    msgsys:msginfo_msgmnb

    待ち行列上の最大バイト数

    32,768

    最大

    msgsys:msginfo_msgmni

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

    1,024

    加算

    msgsys:msginfo_msgtql

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

    式1

    加算

  • セマフォ

    パラメタ

    説明

    種別

    semsys:seminfo_semmni

    セマフォ識別子の数

    2,048

    加算

    semsys:seminfo_semmns

    システム内のセマフォ数

    2,905

    加算

    semsys:seminfo_semmnu

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

    2,048

    加算

    semsys:seminfo_semmsl

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

    290

    最大

    semsys:seminfo_semopm

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

    100

    最大

    semsys:seminfo_semume

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

    2,048

    最大

  • 入出力

    パラメタ

    説明

    種別

    rlim_fd_max

    ファイル記述子数限度

    1,024

    最大

    rlim_fd_cur

    ファイル記述子数

    1,024

    最大

    注)

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

    式1=資源配付の通信宛先数+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

待ち行列上の最大バイト数

32768

最大

特権レベル

process.max-sem-nsems

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

290

最大

特権レベル

process.max-sem-ops

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

100

最大

特権レベル

project.max-sem-ids

セマフォ識別子の数

2048

加算

特権レベル

project.max-shm-memory

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

134217728

加算

特権レベル

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

システムパラメタの設定

システムパラメタを編集するには、/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 5の場合

セマフォ

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

kernel.sem = para1 para2 para3 para4

パラメタ

説明

種別

para1

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

290

最大

para2

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

3312

加算

para3

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

50

最大

para4

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

1318

加算

メッセージキュー

パラメタ

説明

種別

kernel.msgmnb

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

32768

最大

kernel.msgmni

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

545

加算

kernel.msgmax

メッセージの最大サイズ

16384

最大

共有メモリ

パラメタ

説明

種別

kernel.shmmni

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

512

加算

kernel.shmmax

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

15117192

最大

Red Hat Enterprise Linux 6/Red Hat Enterprise Linux 7の場合

セマフォ

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

kernel.sem = para1 para2 para3 para4

パラメタ

説明

種別

para1

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

290

最大

para2

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

3312

加算

para3

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

50

最大

para4

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

1318

加算

メッセージキュー

パラメタ

説明

種別

kernel.msgmnb

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

32768

最大

kernel.msgmni

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

545

加算

kernel.msgmax

メッセージの最大サイズ

16384

最大

共有メモリ

パラメタ

説明

種別

kernel.shmmni

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

512

加算

kernel.shmmax

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

16129084

最大

kernel.shmall

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

90000

加算

チューニング作業手順

  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.confを編集します。

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

    )

    kernel.sem=290 35302 50 1436
    
    kernel.msgmni=561
    
    kernel.shmmni=4608
  4. /etc/sysctl.confへの編集内容が反映されていることを、以下のコマンドで確認します。

    #/bin/cat /etc/sysctl.conf
  5. 上記設定を有効にするために、以下のどちらかの方法を実行します。

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

    # cd /
    # /sbin/shutdown -r now

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

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

    このコマンドを使用した場合リブートの必要がありません。

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

    # /sbin/sysctl -a

確認コマンドの実行例

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