運用時に必要となるカーネルパラメーターのチューニングを行います。
チューニングが必要なカーネルパラメーターとその値は、使用するSolarisのリリースに対応した説明を参照してください。
Solarisの各リリースと説明箇所の対応を以下に示します。
/etc/systemファイルに記載する方法と、/etc/projectファイルに記載する方法があります。導入する環境に応じて、どちらかの方法でチューニングしてください。
/etc/projectによるチューニング : 「Solaris 10およびSolaris 11(/etc/projectによるチューニング)の場合」参照
/etc/systemによるチューニング : 「Solaris 9、Solaris 10、およびSolaris 11(/etc/systemによるチューニング)の場合」参照
/etc/systemによるチューニング : 「Solaris 9、Solaris 10、およびSolaris 11(/etc/systemによるチューニング)の場合」参照
注意
表にある各パラメーターの説明で、「設定基準」が“最大値”とあるパラメーターについては、すでに設定されている値とデフォルト値を比較して、大きい方の値を設定します。“加算”とあるパラメーターについては、すでに設定されている値またはデフォルト値に加算した値を設定してください。
Solaris 9、Solaris 10、およびSolaris 11(/etc/systemによるチューニング)の場合
資源 | パラメーター | 必要となる値 | 設定基準 |
---|---|---|---|
共有メモリ | shmsys:shminfo_shmmax | 40000000 | 最大値 |
shmsys:shminfo_shmmni | 80 | 加算 | |
セマフォ | semsys:seminfo_semmni | 310 | 加算 |
semsys:seminfo_semmns (*1) | 610 | 加算 | |
semsys:seminfo_semmnu (*1) | 512 | 加算 | |
semsys:seminfo_semmsl | 35 | 最大値 | |
メッセージ | msgsys:msginfo_msgmax (*1) | 512 | 最大値 |
msgsys:msginfo_msgmnb | 4096 | 最大値 | |
msgsys:msginfo_msgmni | 3 | 加算 | |
msgsys:msginfo_msgtql | 100 | 最大値 |
(*1) Solaris 10およびSolaris 11では設定不要です。
カーネルパラメーターは、以下の方法で編集できます。
チューニングするためのレコードを/etc/systemファイルへ追加する
現在のレコードの値を変更する
作業手順を以下に示します。
以下のコマンドを使用して、現在システムに設定されている上記表に該当するパラメーターの設定値を確認します。
# /usr/sbin/sysdef |
「表3.1 カーネルパラメーターのチューニング値(Solaris環境の場合)」を参照し、現在の設定値と比較し、パラメーターごとに最大、加算の種別を考慮の上、適切な設定値を算出します。
/etc/systemファイルを編集します。
/etc/systemファイルの編集例を以下に示します。(あくまでも例ですので、環境に合わせた設定を行ってください。)
set shmsys:shminfo_shmmax = 40000000 set shmsys:shminfo_shmmni = 180 set shmsys:shminfo_shmseg = 60 set semsys:seminfo_semmni = 320 set semsys:seminfo_semmns = 670 set semsys:seminfo_semmnu = 542 set semsys:seminfo_semmsl = 35 set msgsys:msginfo_msgmax = 2048 set msgsys:msginfo_msgmnb = 4096 set msgsys:msginfo_msgmni = 53 set msgsys:msginfo_msgtql = 140 |
カーネルパラメーターのチューニングを反映させるため、システムを再起動します。
システムを再起動するコマンドを以下に示します。
# cd / # /usr/sbin/shutdown -y -i6 -g0 |
システム再起動後、設定した値が反映されていることを、以下のコマンドの出力から確認します。
# /usr/sbin/sysdef |
Solaris 10およびSolaris 11(/etc/projectによるチューニング)の場合
注意
本製品を使用するサーバで、/etc/systemファイルによるチューニングだけサポートしている他ソフトウェアを使用する場合、設定値に考慮が必要です。
/etc/systemファイルおよび/etc/projectファイルによるチューニングが混在する場合は、オペレーティングシステムのドキュメントを参照し、適切な値を指定してください。
/etc/projectファイルによるチューニングの際には、Solarisのデフォルト値より小さく設定しないように注意してください。
ETERNUS SF Managerは、以下のプロジェクト配下で動作します。
systemプロジェクト
OS初期設定状態で存在するデーモンなどが動作するプロジェクト
user.rootプロジェクト
OS初期設定状態でroot権限で動作するプロセスが所属するプロジェクト
資源 | パラメーター | 必要となる値 | 設定基準 | 特権レベル |
---|---|---|---|---|
共有メモリ | project.max-shm-memory | 172000000 | 加算 | 特権値 |
project.max-shm-ids | 80 | 加算 | 特権値 | |
セマフォ | project.max-sem-ids | 310 | 加算 | 特権値 |
process.max-sem-nsems | 35 | 最大値 | 特権値 | |
メッセージ | process.max-msg-qbytes | 4096 | 最大値 | 特権値 |
project.max-msg-ids | 3 | 加算 | 特権値 |
特権レベルの特権値は、/etc/projectファイルに "privileged"を指定します。
パラメーターを変更するには、/etc/projectファイルを編集します。
作業手順を以下に示します。
以下のように、systemプロジェクトとuser.rootプロジェクトの初期値、および設定可能な値の上限を確認します。
# newtask -p system # prctl $$ 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 - ~ 略 ~ zone.cpu-shares privileged 1 - none - system 65.5K max none - # newtask -p user.root # prctl $$ 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 - ~ 略 ~ zone.cpu-shares privileged 1 - none - system 65.5K max none - |
「表3.2 資源制御のチューニング値」を参照し、現在の設定値と比較し、パラメーターごとに最大、加算の種別を考慮の上、適切な設定値を算出します。
projmodコマンドで、systemプロジェクトとuser.rootプロジェクトのそれぞれに対して値を設定します。
/etc/projectファイルの編集例を以下に示します。(あくまでも例ですので、環境に合わせて正しく設定を行ってください。)
# projmod -s -K 'project.max-msg-ids=(privileged,131,deny)' system # projmod -s -K 'project.max-shm-ids=(privileged,208,deny)' system # projmod -s -K 'project.max-sem-ids=(privileged,438,deny)' system # projmod -s -K 'project.max-shm-memory=(privileged,270585456,deny)' system # projmod -s -K 'project.max-msg-ids=(privileged,131,deny)' user.root # projmod -s -K 'project.max-shm-ids=(privileged,208,deny)' user.root # projmod -s -K 'project.max-sem-ids=(privileged,438,deny)' user.root # projmod -s -K 'project.max-shm-memory=(privileged,270585456,deny)' user.root |
以下のコマンドを実行して設定情報を確認します。
確認コマンドの実行例を以下に示します。
# projects -l system projid : 0 comment: "" users : (none) groups : (none) attribs: project.max-msg-ids=(privileged,131,deny) project.max-shm-ids=(privileged,208,deny) project.max-sem-ids=(privileged,438,deny) project.max-shm-memory=(privileged,270585456,deny) user.root projid : 1 comment: "" users : (none) groups : (none) attribs: project.max-msg-ids=(privileged,131,deny) project.max-shm-ids=(privileged,208,deny) project.max-sem-ids=(privileged,438,deny) project.max-shm-memory=(privileged,270585456,deny) noproject projid : 2 comment: "" users : (none) groups : (none) attribs: default projid : 3 comment: "" users : (none) groups : (none) attribs: group.staff projid : 10 comment: "" users : (none) groups : (none) attribs: # |
カーネルパラメーターのチューニングを有効にします。
実行例を以下に示します。コマンドの詳細は、Solarisのマニュアルなどを参照してください。
systemプロジェクト
# newtask -p system |
user.rootプロジェクト
# newtask -p user.root |
変更後のカーネルパラメーターの値を確認します。
実行例を以下に示します。コマンドの詳細は、Solarisのマニュアルなどを参照してください。
systemプロジェクト
# prctl -i project system |
user.rootプロジェクト
# prctl -i project user.root |
チューニングが必要なカーネルパラメーターとその値は、「表3.3 カーネルパラメーターのチューニング値(Linux環境の場合)」を参照してください。
なお、カーネルパラメーターの編集は、/etc/sysctl.confファイルへチューニングのためのレコードを追加または現在のレコードの値を変更することで行います。
注意
/etc/sysctl.confファイルに値が設定されていない場合は、OSのデフォルト値が使用されています。この場合は、OSのデフォルト値を基準に、追加・変更してください。OSが使用している値は、sysctlコマンドで表示できます。sysctlコマンドの詳細は、OSのmanコマンドで確認してください。
「表3.3 カーネルパラメーターのチューニング値(Linux環境の場合)」の各パラメーターの説明で、「設定済みの場合の対処」が“最大値”とあるパラメーターについては、すでに設定されている値とデフォルト値の大きい方の値を設定します。“加算”とあるパラメーターについては、すでに設定されている値またはデフォルト値に、加算した値を設定してください。
資源 | パラメーター名 | 必要となる値 | 設定済みの場合の対処 |
---|---|---|---|
共有メモリ | kernel.shmmax | 40000000 | 最大値 |
kernel.shmmni | 50 | 加算 | |
セマフォ | kernel.semの1番目の値(*1) | 30 | 最大値 |
kernel.semの2番目の値(*1) | 600 | 加算 | |
kernel.semの4番目の値(*1) | 300 | 加算 | |
メッセージ | kernel.msgmax | 512 | 最大値 |
kernel.msgmnb | 4096 | 最大値 | |
kernel.msgmni | 3 | 加算 |
(*1)kernel.semパラメーターは以下の形式で記述するため、設定値である4つの値で何番目かを表します。
なお、3番目の値は、すでに設定されている値またはデフォルト値を設定してください。
kernel.sem = para1 para2 para3 para4
/etc/sysctl.confファイルの編集例を以下に示します。
kernel.shmmax = 40000000 kernel.shmmni = 4200 kernel.sem = 250 32600 32 428 kernel.msgmax = 8192 kernel.msgmnb = 16384 kernel.msgmni = 18 |
カーネルパラメーターのチューニングを反映させるため、システムを再起動するか、sysctlコマンドを実行してください。
システムを再起動するコマンドを以下に示します。
# cd / # /sbin/shutdown -r now |
sysctlコマンドを実行して反映する場合の入力例を以下に示します。
# /sbin/sysctl -p /etc/sysctl.conf |