次の表では、パラメータに適用可能なチューニングの方法を示します。
|
/etc/system ファイルは、カーネルパラメータの値を静的に調整するメカニズムを提供します。このファイルに指定された値は、ブート時に読み込まれ適用されます。このファイルに対する変更は、システムがリブートされるまでオペレーティングシステムに適用されません。
/etc/system は、管理者が、特定の目的のために特定のシステム上で設定をカスタマイズするために使用できます。ただし、この同じファイルがほかの ISV および IHV ソフトウェアでも、そのソフトウェアに固有のチューニングのために使用されます。Oracle Solaris ユーティリティーもまた、/etc/system ファイルへのエントリの追加または削除を行います。複数のソースからこのファイルに指示された変更を管理するために、システムの特定のパラメータをチューニングするファイルを格納するための /etc/system.d ディレクトリが提供されています。この方法により、/etc/system ファイルを直接操作することなく、システム上でのパラメータのチューニングが可能になります。/etc/system は引き続き、特定のシステムの構成のための参照ファイルです。ただし、構成を変更するには、/etc/system.d ディレクトリ内のファイルを使用することをお勧めします。
構成パラメータが計算される前に、すべての値を設定するために 1 回のパスが行われます。
次のエントリでは、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 ディレクトリ内の構成ファイルから欠陥のあるパラメータ設定を削除します。ブート時に、/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 は対話式カーネルデバッガであり、その一般的な構文は mdb と同じです。対話式カーネルデバッガの利点は、ブレークポイントを設定できることです。ブレークポイントに達すると、データを検証し、カーネルコードの手順を 1 つずつ実行できます。
kmdb は必要に応じてロードしたりロード解除したりできます。対話的にカーネルをデバッグするためにシステムをリブートする必要はありません。kadb は必要でした。
詳細は、kmdb(1) のマニュアルページを参照してください。
モジュラーデバッガ 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 デバッガを使用する場合、モジュール名の接頭辞は不要です。モジュールのロード後、そのシンボルはコアカーネルのシンボルやすでにロードされている他のモジュールのシンボルとともに共通の名前空間を形成するからです。