この章では、このマニュアルで使用するチューニング情報の記載形式の概要を示します。また、Solaris システムの別のチューニング方法についても説明します。
この節では、この Oracle Solaris リリースで追加または変更されたパラメータについて説明します。
Solaris 10 10/09: このリリースには、zfs_arc_min および zfs_arc_max パラメータに関する記述が含まれます。詳細は、「zfs_arc_min」および 「zfs_arc_max」を参照してください。
Solaris 10 10/09: このリリースには ddi_msix_alloc_limit パラメータが含まれます。このパラメータは、デバイスインスタンスが割り当てることのできる MSI-X 割り込みの数を増やすために使用できます。詳細は、「ddi_msix_alloc_limit」を参照してください。
Solaris 10 5/09: このマニュアルの以前のバージョンでは、tcp_local_dack_interval パラメータの範囲が誤って 1 ミリ秒から 1 分と記載されていました。正しい範囲は 10 ミリ秒から 1 分です。詳細は、「tcp_local_dack_interval」を参照してください。
Solaris 10 10/08: このマニュアルの Solaris 10 バージョンでは、誤って nfs4_shrinkreaddir パラメータの情報が含められていました。このパラメータは使用できません。
Solaris 10 10/08: ZFS ファイルシステムのチューニングについては、次のサイトを参照してください。
http://www.solarisinternals.com/wiki/index.php/ZFS_Evil_Tuning_Guide
Solaris 10 5/08: メモリーの近傍性グループのパラメータは、Solaris 10 5/08 カーネルのパッチで提供されます。これらのパラメータについての詳細は、「近傍性グループのパラメータ」を参照してください。
Solaris 10 5/08: このマニュアルの Solaris 10 バージョンでは、誤って nfs4_dynamic パラメータの情報が含められていました。このパラメータは使用できません。
Solaris 10 5/08: 「sun4u または sun4v 固有のパラメータ」 節の変換記憶バッファーのパラメータが、より適切な情報に更新されています。このリリースでは、次のパラメータが変更されています。
Solaris 10 5/08: このマニュアルの Solaris 10 バージョンでは、誤って tcp_keepalive_abort_interval パラメータの情報が含められていました。このパラメータは、Open Solaris リリースでしか使用できません。
Solaris 10 8/07: パラメータの情報が sun4v システムを含むように更新されています。詳細は、次のマニュアルページを参照してください。
Solaris 10 8/07: 以前にこのマニュアルに記載されていた maxpgio パラメータの値の範囲に関する情報には誤りがありました。詳細は、「maxpgio」を参照してください。
Solaris 10 8/07: IP インスタンスプロジェクトによって、ゾーンを排他的 IP ゾーンとして構成し、一部の LAN または VLAN からそのゾーンへの排他的アクセスを割り当てることができます。
以前の共有 IP ゾーンの動作が、引き続きデフォルトの動作になっています。排他的 IP ゾーンとは、TCP/IP チューニング可能パラメータを含む TCP/IP の状態およびポリシーが、すべての面において排他的に IP ゾーン単位になっていることを意味します。
IP インスタンス機能の導入によって、次に挙げる TCP パラメータは PRIV_SYS_NET_CONFIG 特権を必要とするため、大域ゾーンでのみ設定可能になります。
その他の TCP、IP、UDP、SCTP パラメータおよびルートメトリックは、PRIV_SYS_IP_CONFIG 特権のみを必要とします。各排他的 IP ゾーンは、これらのパラメータを独自のセットで制御します。共有 IP ゾーンでは、TCP、IP、UDP、SCTP、およびルートパラメータは大域ゾーンによって制御されます。これは、これらのパラメータの設定が大域ゾーンとすべての共有 IP ゾーン間で共有されるためです。
Solaris ゾーンでの IP インスタンスの使用に関する詳細は、『Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)』を参照してください。
Solaris 10 8/07: 以前にこのマニュアルに記載されていた ip_squeue_write パラメータの情報は不正確であったため、削除されました。
Solaris 10 11/06: Solaris 10 リリースで ncsize パラメータのデフォルト値に関する記述に誤りがありました。詳細は、「ncsize」を参照してください。
Solaris 10 11/06: Solaris 10 リリースで nfs:nfs3_nra パラメータのデフォルト値に関する記述に誤りがありました。デフォルト値は 4 です。詳細は、「nfs:nfs3_nra」を参照してください。
Solaris 10 6/06: ip_squeue_fanout パラメータが変更されました。詳細は、「ip_squeue_fanout」および 「ip_soft_rings_cnt」を参照してください。
Solaris 10 6/06: ip_multidata_outbound パラメータが拡張されました。詳細は、「ip_multidata_outbound (Solaris 10 リリース)」を参照してください。
Solaris 10 6/06: ip_forward_src_routed パラメータおよび ip6_forward_src_routed パラメータが修正されました。Solaris 9 以降、このパラメータのデフォルト値は有効ではなく無効です。詳細は、「ip_forward_src_routed と ip6_forward_src_routed」を参照してください。
Solaris 10 6/06: UDP パラメータが修正されました。Solaris 10 リリースでこれらのパラメータのデフォルト値が変更されましたが、以前は新しいデフォルト値に関する記述がありませんでした。詳細は、「UDP チューニング可能パラメータ」を参照してください。
Solaris 10 6/06: Solaris 10 リリースで sq_max_size パラメータのデフォルト値に関する記述に誤りがありました。詳細は、「sq_max_size」を参照してください。
この節では、Solaris 10 リリースで追加または変更されたパラメータについて説明します。
新しいパラメータ default_stksize では、あらゆるスレッド、カーネル、またはユーザーのデフォルトスタックサイズを指定します。lwp_default_stksize パラメータも引き続き利用できますが、すべてのカーネルスタックに作用するわけではありません。default_stksize が設定されている場合、それは lwp_default_stksize に優先します。詳細は、「default_stksize」を参照してください。
この Solaris リリースでは、すべての System V IPC 機能を自動構成することも、または資源制御によって制御することもできます。共有できる機能はメモリー、メッセージキュー、およびセマフォーです。
資源制御によって、ローカルシステム上で、またはネームサービス環境において、プロジェクト単位またはプロセス単位で IPC を設定できます。
旧リリースの Solaris では、カーネルのチューニング可能パラメータで IPC 機能を制御していました。これらの機能のデフォルト値を変更するには、/etc/system ファイルを変更してシステムを再起動しなければなりませんでした。
しかし、資源制御で IPC 機能を制御するようになったので、システムの稼働中に IPC機能の構成を変更できます。
これまで動作させるためにシステムチューニングが必要だったアプリケーションの多くは、デフォルト値の増大と資源の自動割り当てにより、チューニングしなくても動作する可能性があります。
次の表では、現在は旧式となっている IPC チューニング可能パラメータと、代わりに使用できる可能性のある資源制御を識別しています。旧式の IPC チューニング可能パラメータと資源制御との重要な違いは、IPC チューニング可能パラメータがシステム単位で設定されていたのに対し、資源制御は各プロジェクトまたは各プロセス単位で設定されることです。
資源制御 |
旧式のチューニング可能パラメータ |
旧デフォルト値 |
最大値 |
新デフォルト値 |
---|---|---|---|---|
process.max-msg-qbytes |
msgsys:msginfo_msgmnb |
4096 |
ULONG_MAX |
65536 |
process.max-msg-messages |
msgsys:msginfo_msgtql |
40 |
UINT_MAX |
8192 |
process.max-sem-ops |
semsys:seminfo_semopm |
10 |
INT_MAX |
512 |
process.max-sem-nsems |
semsys:seminfo_semmsl |
25 |
SHRT_MAX |
512 |
project.max-shm-memory |
shmsys:shminfo_shmmax* |
0x800000 |
UINT64_MAX |
物理メモリーの 1/4 |
project.max-shm-ids |
shmsys:shminfo_shmmni |
100 |
224 |
128 |
project.max-msg-ids |
msgsys:msginfo_msgmni |
50 |
224 |
128 |
project.max-sem-ids |
semsys:seminfo_semmni |
10 |
224 |
128 |
* project.max-shm-memory 資源制御は 1 つのプロジェクトにおける共有メモリー量の合計を制限していますが、以前は shmsys:shminfo_shmmax パラメータが 1 つの共有メモリーセグメントのサイズを制限していました。
資源制御についての詳細は、『Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)』の「使用可能な資源制御」を参照してください。
旧式のパラメータは、Solaris システム上の /etc/system ファイルに引き続き指定できます。その場合、これらのパラメータは、以前の Solaris リリースの場合と同様に、デフォルトの資源制御値の初期化に使用されます。詳細は、「旧式または削除されたパラメータ」を参照してください。ただし、古いパラメータはできるだけ使用しないでください。
関連のある次のパラメータは削除されました。これらのパラメータが Solaris システム上の /etc/system ファイルに含まれていた場合は、コメント扱いになります。
semsys:seminfo_semmns |
semsys:seminfo_semvmx |
semsys:seminfo_semmnu |
semsys:seminfo_semaem |
semsys:seminfo_semume |
semsys:seminfo_semusz |
semsys:seminfo_semmap |
shmsys:shminfo_shmseg |
shmsys:shminfo_shmmin |
msgsys:msginfo_msgmap |
msgsys:msginfo_msgseg |
msgsys:msginfo_msgssz |
msgsys:msginfo_msgmax |
|
現在使用できる資源制御の一覧については、rctladm(1M) のマニュアルページを参照してください。資源制御の構成方法については、project(4) のマニュアルページ、および『Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)』の第 6 章「資源制御 (概要)」を参照してください。
このリリースでは、NFSv4 プロトコルの次のパラメータが新しく追加されました。
NFSv4 パラメータについては、「NFS モジュールのパラメータ」を参照してください。
この Solaris リリースでは、次の IP パラメータが追加されました。
この Solaris リリースでは、次の TCP パラメータが追加されました。
この Solaris リリースでは、次の TCP/IP パラメータは旧式となりました。
ipc_tcp_conn_hash_size
tcp_compression_enabled
tcp_conn_hash_size
ip_forwarding
ip6_forwarding
xxx_forwarding
この Solaris リリースでは、ndd コマンドで次のチューニング可能パラメータを設定する代わりに、 routeadm コマンドまたは ifconfig コマンドを使用して、IP 転送を有効にしたり無効にしたりするようになりました。
ip_forwarding
ip6_forwarding
xxx_forwarding
ndd コマンドの代わりに routeadm コマンドおよび ifconfig コマンドを使用して IP 転送を設定することによって、次の利点が得られます。
すべての設定値が再起動後も維持されます。
新しい ifconfig router および -router コマンドを /etc/hostname.interface ファイルに、インタフェースの初期設定時に実行される他の ifconfig コマンドとともに組み込むことができます。
システムのすべてのインタフェース上で IPv4 または IPv6 パケットを転送できるようにするには、次のコマンドを使用します。
# routeadm -e ipv4-forwarding |
# routeadm -e ipv6-forwarding |
システムのすべてのインタフェース上で IPv4 または IPv6 パケット転送を無効にするには、次のコマンドを使用します。
# routeadm -d ipv4-forwarding |
# routeadm -d ipv6-forwarding |
旧リリースの Solaris では、システムのすべてのインタフェース上で IPv4 または IPv6 パケットを転送できるようにする場合、次のように入力します。
# ndd -set /dev/ip ip_forwarding 1 |
# ndd -set /dev/ip ip6_forwarding 1 |
旧リリースの Solaris では、システムのすべてのインタフェース上で IPv4 または IPv6 パケット転送を無効にする場合、次のように入力します。
# ndd -set /dev/ip ip_forwarding 0 |
# ndd -set /dev/ip ip6_forwarding 0 |
特定の IPv4 インタフェースまたは IPv6 インタフェースで IP 転送を有効にするには、インタフェースに合わせて次のような構文を使用します。例として、bge0 インタフェースを使用します。
# ifconfig bge0 router |
# ifconfig bge0 inet6 router |
特定の IPv4 インタフェースまたは IPv6 インタフェースで IP 転送を無効にするには、インタフェースに合わせて次のような構文を使用します。例として、bge0 インタフェースを使用します。
# ifconfig bge0 -router |
# ifconfig bge0 inet6 -router |
これまで、特定のインタフェースで IP 転送を有効にするには、次のように入力していました。
# ndd -set /dev/ip bge0:ip_forwarding 1 |
# ndd -set /dev/ip bge0:ip_forwarding 1 |
これまで、特定のインタフェースで IP 転送を無効にするには、次のように入力していました。
# ndd -set /dev/ip ip_forwarding 0 |
# ndd -set /dev/ip ip6_forwarding 0 |
実行システム上で前のいずれかの routeadm 設定値を有効にする場合は、次のコマンドを使用します。
# routeadm -u |
詳細は、routeadm(1M) およびifconfig(1m) のマニュアルページを参照してください。
このリリースでは、Translation Storage Buffer (TSB) をチューニングするための新しいパラメータが追加されました。TSB パラメータについては、「sun4u または sun4v 固有のパラメータ」を参照してください。
この Solaris リリースには、TCP と同様のサービスを提供する、信頼性の高いトランスポートプロトコルのストリーム制御転送プロトコル (SCTP) が含まれています。SCTP チューニング可能パラメータについては、「SCTP チューニング可能パラメータ」を参照してください。
Solaris OS は SPARC および x86 プロセッサで動作する、マルチスレッドでスケーラブルな UNIX オペレーティングシステムです。Solaris は、システムの負荷に自動的に対応するため、最小限のチューニングしか必要ありません。それでも、場合によってはチューニングが必要になることもあります。このマニュアルでは、Solaris OS で公式にサポートされているカーネルのチューニングオプションの詳細を記述します。
Solaris カーネルは、常にロードされているコア部分と、参照が発生するとロードされるロード可能モジュールから構成されています。このマニュアルのカーネルに関する部分で参照されている変数の多くは、コア部分にあります。しかし、ロード可能モジュールの変数もいくつかあります。
システムのチューニングをする際に考慮しなければならないのは、さまざまなシステム パラメータ (またはシステム変数) を設定する行為は、処理効率を高めるという目的にとって、多くの場合、一番効率の良くない行為だということです。最も効果的なチューニング方法は、通常、アプリケーションの動作を変更することです。また、物理メモリーを増やしたり、ディスクの入出力パターンのバランスをとることも効果があります。このマニュアルに記載された変数の値を 1 つ変更しただけで、システムパフォーマンスに意味のある影響が現れることは、ごく限られた場合にしか起きません。
あるシステムの /etc/system 設定値が全体として、または部分的に、別のシステムの環境に当てはまらないこともあるということを忘れないでください。したがって、使用する環境に応じて、このファイルに設定する値を慎重に検討する必要があります。このマニュアルで述べるシステム変数を変更する場合は、システムの動作を前もって理解していなければなりません。
Solaris の新しいリリースに移行する場合は、空の /etc/system ファイルで開始することをお勧めします。最初のステップとしては、自社製またはサードパーティー製のアプリケーションで必要とされるチューニング可能パラメータだけを追加してください。Solaris 10 リリースでは、System V IPC (セマフォー、共有メモリー、およびメッセージキュー) に関係するすべてのチューニング可能パラメータが変更されているため、使用環境で変更するようにしてください。詳細は、「System V IPC 構成」を参照してください。基準検査の確立後に、システムパフォーマンスを評価して、チューニング可能パラメータの追加設定が必要かどうかを決定します。
このマニュアルで説明するチューニング可能パラメータは、Solaris のリリースごとに変更される可能性があります。これらのチューニング可能パラメータを公開することによって、予告なくチューニング可能パラメータやその説明が変更されることがなくなるわけではありません。
各チューニング可能パラメータの説明形式は、次のとおりです。
パラメータ名
説明
データ型
デフォルト
範囲
単位
動的か
検査
暗黙的制約
どのような場合に変更するか
ゾーン構成
コミットレベル
変更履歴
/etc/system ファイルに入力するか、または /etc/default/facility ファイルに指定されているとおりの名前。
ほとんどのパラメータ名は、コロン (: ) を伴わない parameter の形式をとります。このような名前は、カーネルのコア部分内の変数を表しています。名前にコロンが含まれている場合、コロンの左側の文字列はロード可能モジュールの名前を表し、コロンの右側の文字列はモジュール内の変数名を表します。コロンの右側の文字列はモジュール内のパラメータ名を示します。次に例を示します。
module_name:variable |
パラメータが何を行うのか、何を制御するのかという簡単な説明。
次の区別で、符号付きまたは符号なし short 整数または long 整数を指定。
32 ビットのカーネルが動作しているシステムでは、long 整数のサイズは整数と同じです。
64 ビットのカーネルが動作しているシステムでは、long 整数のビット幅は整数の 2 倍です。例 : 符号なし整数 = 32 ビット、符号なし long 整数 = 64 ビット
単位の種類を表します。この項目は省略されることがあります。
システムがデフォルト値として使用する値です。
システムの検査で取り得る範囲や、データ型の上下限を表す範囲です。
MAXINT – 符号付き整数の最大値 (2,147,483,647) を表します。
MAXUINT – 符号なし整数の最大値 (4,294,967,295) を表します。
動作中のシステムで mdb、または kmdb デバッガを使用してパラメータを変更できる場合は「はい」です。パラメータがブート時の初期化だけの場合は「いいえ」です。
システムが、/etc/system ファイルに指定されたとおりの値とデフォルトの値のいずれを変数の値に適用するか調べます。また、検査がいつ適用されるかも示します。
パラメータに対する暗黙的な制約事項 (特に他のパラメータとの関係において) を表します。この項目は省略されることがあります。
この値を変更したくなる理由について説明します。エラーメッセージまたは戻りコードが含まれます。
パラメータを排他的 IP ゾーン内で設定できるか、または大域ゾーン内で設定する必要があるかを識別します。共有 IP ゾーン内で設定できるパラメータはありません。
インタフェースの安定性を表します。このマニュアルで記述するパラメータの多くは「発展中 (Evolving)」または「変更の可能性あり (Unstable)」のいずれかに分類されます。詳細は、attributes(5) のマニュアルページを参照してください。
存在する場合は、付録 A または付録 B の「変更履歴」への参照が示されます。この項目は省略されることがあります。
次の表では、パラメータに適用可能なチューニングの方法を示します。
チューニング可能パラメータの適用方法 |
参照先 |
---|---|
/etc/system ファイルの変更 | |
カーネルデバッガ (kmdb) の使用 | |
モジューラデバッガ (mdb) の使用 | |
ndd コマンドによる TCP/IP パラメータの設定 | |
/etc/default 下のファイルの変更 |
/etc/system ファイルは、カーネルパラメータの値を静的に調整する機構を提供します。このファイルに指定された値は、ブート時に読み込まれ適用されます。このファイルに対する変更は、システムがリブートされるまでオペレーティングシステムに適用されません。
Solaris 8 より前のリリースでは、パラメータの値を設定する /etc/system のエントリは、次の 2 つの処理段階に分けて適用されていました。
最初の処理段階では、さまざまなブートストラップパラメータ (maxusers など) を取得し、基本となるシステムパラメータを初期設定します。
次の処理段階では、ブートストラップパラメータを使用して基本構成を計算し、/etc/system ファイルに指定されているすべての値を適用します。ブートストラップパラメータに関しては、この処理段階で計算された値やリセットされた値は、/etc/system ファイルに指定されている値で置き換えられます。
2 つめの処理段階では、許容されないように思われる値にパラメータを設定したり、初期構成で値が上書きされるパラメータ (max_nprocs など) に値を割り当てたりして、ユーザーや管理者にとって混乱を招く場合がありました。
Solaris 8 リリースから、構成パラメータを計算する前にすべての値を設定する 1 つの処理段階が設けられました。
次の /etc/system エントリでは、NFS バージョン 2 ソフトウェアを使用してマウントされたファイルシステムに対し先読みするブロックの数を指定します。
set nfs:nfs_nra=4 |
値を変更する前に /etc/system ファイルのコピーを作成しておけば、不正な値を簡単に元の値に戻せます。次に例を示します。
# cp /etc/system /etc/system.good |
/etc/system ファイルに指定した値が原因でシステムがブートできない状態になった場合は、次のコマンドでブートします。
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 ファイルを修正できます。
システム回復については、『Solaris のシステム管理 (基本編)』を参照してください。
kmdb は対話式カーネルデバッガであり、その一般的な構文は mdb と同じです。対話式カーネルデバッガの利点は、ブレークポイントを設定できることです。ブレークポイントに達すると、データを検証し、カーネルコードの手順を 1 つずつ実行できます。
kmdb は必要に応じてロードしたりロード解除したりできます。対話的にカーネルをデバッグするためにシステムをリブートする必要はありません。kadb は必要でした。
詳細は、kmdb(1) のマニュアルページを参照してください。
Solaris 8 リリースから組み込まれたモジューラデバッガ mdb は Solaris のデバッガの中でも独特で、簡単に拡張できます。このデバッガのプログラミング API を使用して、モジュールをコンパイルすることによって、デバッガのコンテキスト内で希望する処理を実行することができます。
さらに、mdb には、コマンド行での編集、コマンド履歴、組み込み出力ページャ、構文チェック、コマンドパイプラインなどの、いくつかの便利な機能があります。カーネルに対する事後検査用のデバッガとしては、mdb をお勧めします。
詳細は、mdb(1) のマニュアルページを参照してください。
整数パラメータ maxusers の値を 495 から 512 に変更するには、次のようにします。
# mdb -kw Loading modules: [ unix krtld genunix ip logindmux ptm nfs ipc lofs ] > maxusers/D maxusers: maxusers: 495 > maxusers/W 200 maxusers: 0x1ef = 0x200 > $q |
実際に変更する場合は、maxusers を変更したいパラメータのアドレスに、値を設定したい値に置き換えて、このコマンドを実行します。
モジューラデバッガの使用についての詳細は、『Solaris モジューラデバッガ』を参照してください。
kmdb デバッガまたは mdb デバッガを使用する場合、モジュール名の接頭辞は不要です。モジュールのロード後、そのシンボルはコアカーネルのシンボルやすでにロードされている他のモジュールのシンボルとともに共通の名前空間を形成するからです。
たとえば、UFS モジュールがロードされている場合、各デバッガは ufs:ufs_WRITES を ufs_WRITES としてアクセスします。 ufs: 接頭辞が必要なのは、/etc/system ファイルに設定する場合です。
Solaris のチューニング可能パラメータはさまざまな形を取ります。/usr/include/sys/tuneable.h ファイルで定義された tune 構造体は、tune_t_fsflushr、tune_t_minarmem、および tune_t_flkrec の実行時の表現です。カーネルが初期設定された後は、これらの変数に対する参照はすべて、この tune 構造体の対応フィールドに入ります。
以前のバージョンの『Solaris のシステム管理 (第 2 巻)』をはじめ、さまざまなマニュアルには、tune 構造体のパラメータを設定する適切な方法として tune:field-name (field-name には前述の実際のパラメータ名を指定する) という構文が指定されていました。しかし、この設定は何のメッセージもなく失敗します。ブート時にこの構造体にパラメータを設定するには、必要なフィールド名に対応する特別なパラメータを初期設定する必要があります。そうすれば、これらの値がシステム初期設定プロセスで tune 構造体にロードされます。
複数のチューニング可能パラメータが置かれるもう 1 つの構造体に、v という名前の var 構造体があります。var 構造体の定義は /usr/include/sys/var.h ファイルにあります。autoup や bufhwm などの変数の実行時の状態はここに格納されます。
システムの動作中に tune 構造体や v 構造体を変更しないでください。システムの動作中にこれらの構造体のフィールドを変更すると、システムがパニックになることがあります。
システム構成情報を調べるツールはいくつかあります。ツールによっては、スーパーユーザー権限が必要です。それ以外のツールは、一般ユーザーの権限で実行できます。動作中のシステム上で mdb を使うか、あるいは kmdb でブートし、カーネルデバッガですべての構造体やデータアイテムを調べることができます。
詳細は、mdb(1) または kadb(1M) のマニュアルページを参照してください。
sysdef コマンドは、System V IPC の設定値、STREAMS チューニング可能パラメータ、プロセス資源制限、および tune 構造体と v 構造体の一部を提供します。たとえば、512M バイトの Sun Ultra 80 システム上で sysdef を実行すると、「チューニング可能パラメータ」セクションは次のように表示されます。
10387456 maximum memory allowed in buffer cache (bufhwm) 7930 maximum number of processes (v.v_proc) 99 maximum global priority in sys class (MAXCLSYSPRI) 7925 maximum processes per user id (v.v_maxup) 30 auto update time limit in seconds (NAUTOUP) 25 page stealing low water mark (GPGSLO) 5 fsflush run rate (FSFLUSHR) 25 minimum resident memory for avoiding deadlock (MINARMEM) 25 minimum swapable memory for avoiding deadlock (MINASMEM) |
詳細は、sysdef(1M) のマニュアルページを参照してください。
kstat データ構造体群は、さまざまなカーネルのサブシステムやドライバによって維持されています。この構造体群は、カーネル内のデータをユーザープログラムに提供する機構を提供します。この機構を利用する場合、プログラムはカーネルのメモリーを読んだり、スーパーユーザー権限を持つ必要はありません。詳細は、kstat(1M) または kstat(3KSTAT) のマニュアルページを参照してください。
unix モジュールの kstat データ構造体 を system_pages という名前で使用しても、cachefree の統計情報は得られません。cachefree は Solaris 9 リリースからサポートされなくなりました。