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

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

運用管理サーバでは、システムパラメタのチューニングを行う必要があります。チューニングが必要なシステムパラメタとその値については、以下の表を参照してください。パラメタにより、すでに設定されている値(初期値)に加算する場合と、すでに設定されている値と比較し大きい方の値(最大)を設定する場合があります。(加算の場合、設定のシステム上限値も確認してください。) 各パラメタがどちらに当たるかは、表の“種別”を参照してください。

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

Solaris

Solaris 9の場合

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

共有メモリ

パラメタ

説明

種別

shmsys:shminfo_shmmax

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

90177536

最大

shmsys:shminfo_shmmni

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

50

加算

メッセージキュー

パラメタ

説明

種別

msgsys:msginfo_msgmax

メッセージの最大サイズ

16384

最大

msgsys:msginfo_msgmnb

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

32768

最大

msgsys:msginfo_msgmni

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

1024

加算

msgsys:msginfo_msgtql

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

式1

加算

セマフォ

パラメタ

説明

種別

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=資源配付の通信宛先数+20+msgmnbのチューニング値/100


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

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

チューニング作業手順

  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ファイル編集例

system:0:System account:::project.max-msg-ids=(privileged,1152,deny);process.max-file-descriptor=(privileged,2048,deny);process.max-msg-qbytes=(privileged,64000,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,64000,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,64000,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,64000,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

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

3302

加算

para3

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

50

最大

para4

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

1308

加算

メッセージキュー

パラメタ

説明

種別

kernel.msgmnb

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

32768

最大

kernel.msgmni

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

545

加算

kernel.msgmax

メッセージの最大サイズ

16384

最大

共有メモリ

パラメタ

説明

種別

kernel.shmmni

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

512

加算

kernel.shmmax

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

15117192

最大

Red Hat Enterprise Linux 6の場合

セマフォ

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

kernel.sem = para1 para2 para3 para4

パラメタ

説明

種別

para1

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

290

最大

para2

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

3302

加算

para3

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

50

最大

para4

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

1308

加算

メッセージキュー

パラメタ

説明

種別

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

(省略)