運用時に必要となるカーネルパラメーターのチューニングを行います。
チューニングが必要なカーネルパラメーターとその値は、使用するSolarisのリリースに対応した説明を参照してください。
Solarisの各リリースと説明箇所の対応を以下に示します。
/etc/systemファイルに記載する方法と、/etc/projectファイルに記載する方法があります。導入する環境に応じて、どちらかの方法でチューニングしてください。
ポイント
表にある各パラメーターの説明で、「設定基準」が“最大値”とあるパラメーターには、すでに設定されている値とデフォルト値を比較して、大きい方の値を設定してください。“加算”とあるパラメーターには、すでに設定されている値またはデフォルト値に加算した値を設定してください。
/etc/systemによるチューニング
資源 | パラメーター | 必要となる値 | 設定基準 |
---|---|---|---|
共有メモリー | shmsys:shminfo_shmmax | 40000000 | 最大値 |
shmsys:shminfo_shmmni | 80 | 加算 | |
セマフォ | semsys:seminfo_semmni | 320 | 加算 |
semsys:seminfo_semmsl | 35 | 最大値 |
カーネルパラメーターは、以下の方法で編集できます。
チューニングするためのレコードを/etc/systemファイルへ追加する
現在のレコードの値を変更する
作業手順を以下に示します。
以下のコマンドを使用して、現在システムに設定されている上記表に該当するパラメーターの設定値を確認します。
# /usr/sbin/sysdef
「表3.1 カーネルパラメーターのチューニング値(Solaris環境の場合)」を参照し、現在の設定値と比較し、パラメーターごとに最大、加算の種別を考慮のうえ、適切な設定値を算出します。
/etc/systemファイルを編集します。
/etc/systemファイルの編集例を以下に示します。(あくまでも例ですので、環境に合わせた設定を行ってください。)
set shmsys:shminfo_shmmax = 40000000 set shmsys:shminfo_shmmni = 180 set semsys:seminfo_semmni = 320 set semsys:seminfo_semmsl = 35
カーネルパラメーターのチューニングを反映させるため、システムを再起動します。
システムを再起動するコマンドを以下に示します。
# cd / # /usr/sbin/shutdown -y -i6 -g0
システム再起動後、設定した値が反映されていることを、以下のコマンドの出力から確認します。
# /usr/sbin/sysdef
/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 | 320 | 加算 | 特権値 |
process.max-sem-nsems | 35 | 最大値 | 特権値 |
特権レベルの特権値は、/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-shm-memory=(privileged,270585456,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 'process.max-sem-nsems=(privileged,35,deny)' system # projmod -s -K 'project.max-shm-memory=(privileged,270585456,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 'process.max-sem-nsems=(privileged,35,deny)' user.root
以下のコマンドを実行して設定情報を確認します。
確認コマンドの実行例を以下に示します。
# projects -l system projid : 0 comment: "" users : (none) groups : (none) attribs: process.max-sem-nsems=(privileged,35,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: process.max-sem-nsems=(privileged,35,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) | 690 | 加算 | |
kernel.semの4番目の値(*1) | 310 | 加算 |
*1: kernel.semパラメーターは以下の形式で記述するため、設定値である4つの値の何番目かを示しています。なお、3番目の値は、すでに設定されている値またはデフォルト値を設定してください。
kernel.sem = parameter1 parameter2 parameter3 parameter4
/etc/sysctl.confファイルの編集例を以下に示します。
kernel.shmmax = 40000000 kernel.shmmni = 4200 kernel.sem = 30 32600 32 428
カーネルパラメーターのチューニングを反映させるため、システムを再起動するか、sysctlコマンドを実行してください。
システムを再起動するコマンドを以下に示します。
# cd / # /sbin/shutdown -r now
sysctlコマンドを実行して反映する場合の入力例を以下に示します。
# /sbin/sysctl -p /etc/sysctl.conf