Go to main content
Oracle® Solaris 11.3 カーネルのチューンアップ・リファレンスマニュアル

印刷ビューの終了

更新: 2016 年 11 月
 
 

Oracle Solaris カーネルのチューニング

次の表では、パラメータに適用可能なチューニングの方法を示します。

チューニング可能パラメータの適用方法
参照先
/etc/system.d ディレクトリ内の構成ファイルにパラメータを設定します。
カーネルデバッガ (kmdb) を使用します。
モジューラデバッガ (mdb) を使用します。
ipadm コマンドを使用して、TCP/IP パラメータを設定します。
/etc/default のファイルを変更します。

/etc/system ファイルおよび /etc/system.d ディレクトリ

/etc/system ファイルは、カーネルパラメータの値を静的に調整するメカニズムを提供します。このファイルに指定された値は、ブート時に読み込まれ適用されます。このファイルに対する変更は、システムがリブートされるまでオペレーティングシステムに適用されません。

/etc/system は、管理者が、特定の目的のために特定のシステム上で設定をカスタマイズするために使用できます。ただし、この同じファイルがほかの ISV および IHV ソフトウェアでも、そのソフトウェアに固有のチューニングのために使用されます。Oracle Solaris ユーティリティーもまた、/etc/system ファイルへのエントリの追加または削除を行います。複数のソースからこのファイルに指示された変更を管理するために、システムの特定のパラメータをチューニングするファイルを格納するための /etc/system.d ディレクトリが提供されています。この方法により、/etc/system ファイルを直接操作することなく、システム上でのパラメータのチューニングが可能になります。/etc/system は引き続き、特定のシステムの構成のための参照ファイルです。ただし、構成を変更するには、/etc/system.d ディレクトリ内のファイルを使用することをお勧めします。

構成パラメータが計算される前に、すべての値を設定するために 1 回のパスが行われます。


注 -  このドキュメント全体を通して、パラメータ設定は、システム上の特定の構成の実装のための操作ファイルである /etc/system を参照しています。ただし、カーネルチューニング可能パラメータなどのパラメータを変更する場合、このガイドでは、/etc/system.d ディレクトリ内のパラメータファイルを使用して微調整が行われることを前提にしています。
使用例 1  特定のシステム用の ZFS パラメータの設定

次のエントリでは、ZFS ARC の最大値 (zfs_arc_max) を 30G バイトに設定します。

set zfs:zfs_arc_max = 0x780000000

会社の名前が Widget, Inc. であるとします。このエントリを widget:zfs または、/etc/system.d ディレクトリ内の同様の名前のファイルに格納します。システムがブートすると、/etc/system.d 内のすべてのパラメータ構成が /etc/system ファイルに追加されます。これにより、システムは /etc/system の内容に従って構成されます。

適正でない値からの復元

間違った値を元に戻すには、次のいずれかの方法を実行します。

/etc/system.d/file 内のパラメータのリセット

/etc/system.d ディレクトリ内の構成ファイルから欠陥のあるパラメータ設定を削除します。ブート時に、/etc/system ファイルが以前の構成で更新され、それらがシステムに再適用されます。

クローニングされたブート環境を使用する

システムパラメータの変更を導入する前に、まずブート環境のクローンを作成してください。

# beadm create BE-clonename

その後、/etc/system に変更を適用したあと現在の BE が使用不能になった場合は、システムをリブートします。x86 GRUB メニューまたは SPARC ブートメニューで、「BE clone」を選択します。ブートが完了したあと、以降のシステムブートで使用されるデフォルトの BE になるように、オプションで BE クローンをアクティブ化できます。

ファイルコピーを使用する

正しくない値から簡単に回復できるように、/etc/system.d ディレクトリ内の構成ファイルの新しいパラメータで更新する前に、/etc/system ファイルのコピーを作成します。例:

# cp /etc/system /etc/system.good

/etc/system.d 内の構成ファイルに指定した値が原因でシステムがブートできなくなった場合は、次のコマンドで回復できます。

ok boot -a

このコマンドを実行すると、ブートプロセスで使用する各ファイルの名前をシステムから要求されます。/etc/system ファイルの名前が要求されるまで Return キーを押して、デフォルトの値を適用します。Name of system file [/etc/system]: というプロンプトが表示されたら、正しい /etc/system ファイルの名前かまたは /dev/null を入力します。

Name of system file [/etc/system]: /etc/system.good

/dev/null を指定した場合は、このパスによってシステムは /dev/null から構成情報を読み取ろうとします。このファイルは空なので、システムはデフォルト値を使用することになります。システムがブートしたあと、/etc/system ファイルを修正できます。

システムリカバリについての詳細は、Oracle Solaris 11.3 でのシステム管理のトラブルシューティングを参照してください。

kmdb コマンド

kmdb は対話式カーネルデバッガであり、その一般的な構文は mdb と同じです。対話式カーネルデバッガの利点は、ブレークポイントを設定できることです。ブレークポイントに達すると、データを検証し、カーネルコードの手順を 1 つずつ実行できます。

kmdb は必要に応じてロードしたりロード解除したりできます。対話的にカーネルをデバッグするためにシステムをリブートする必要はありません。kadb は必要でした。

詳細は、kmdb(1) のマニュアルページを参照してください。

mdb コマンド

モジュラーデバッガ mdb は、簡単に拡張できるため、Oracle Solaris デバッガの中では珍しいものです。このデバッガのプログラミング API を使用して、モジュールをコンパイルすることによって、デバッガのコンテキスト内で希望するタスクを実行することができます。

さらに、mdb には、コマンド行での編集、コマンド履歴、組み込み出力ページャ、構文チェック、コマンドパイプラインなどの、いくつかの便利な機能があります。カーネルに対する事後検査用のデバッガとしては、mdb をお勧めします。

詳細は、mdb(1) のマニュアルページを参照してください。

使用例 2  mdb を使用した情報の表示

システムのメモリー使用量の概要を表すビューを表示します。例:

# mdb -k
Loading modules: [ unix genunix specfs dtrace mac cpu.generic 
cpu_ms.AuthenticAMD.15 uppc pcplusmp scsi_vhci zfs mpt sd ip 
hook neti arp usba sockfs kssl qlc fctl stmf stmf_sbd md lofs 
random idm fcp crypto cpc smbsrv nfs fcip sppp ufs logindmux 
ptm nsmb scu mpt_sas pmcs emlxs ]
> ::memstat
Page Summary                Pages                MB  %Tot
------------     ----------------  ----------------  ----
Kernel                     160876               628   16%
ZFS File Data              303401              1185   30%
Anon                        25335                98    2%
Exec and libs                1459                 5    0%
Page cache                   5083                19    1%
Free (cachelist)             6616                25    1%
Free (freelist)            510870              1995   50%

Total                     1013640              3959
Physical                  1013639              3959
> $q

モジュラーデバッガの使用についての詳細は、Oracle Solaris モジュラーデバッガを参照してください。

kmdb デバッガまたは mdb デバッガを使用する場合、モジュール名の接頭辞は不要です。モジュールのロード後、そのシンボルはコアカーネルのシンボルやすでにロードされている他のモジュールのシンボルとともに共通の名前空間を形成するからです。