特別な構造
Solaris のチューニング変数にはいろいろな形式があります。tune_t_gpgslo、tune_t_fsflushr、tune_t_minarmem、tune_t_minasmem、 tune_t_flckrec の実行時の状態は、/usr/include/sys/tuneable.h に定義された tune 構造体で表わされます。カーネルが初期設定された後は、これらの変数の値は、この tune 構造体の対応フィールドに入ります。
以前のバージョンの『Solaris のシステム管理 (第 2 巻)』を始め、さまざまなマニュアルには、tune 構造体の変数に値を設定する適切な方法として tune:field-name (field-name には前述の実際の変数名を指定する) という構文が指定されていました。しかし、この設定は何のメッセージもなく失敗します。ブート時にこの構造体に変数を設定するには、必要なフィールド名に対応する特別な変数を初期設定する必要があります。そうすれば、これらの値がシステム初期設定プロセスで tune 構造体にロードされます。
複数のチューニングパラメータが置かれるもう 1 つの構造体に、v という名前の var 構造体があります。var 構造体の定義は /usr/include/sys/var.h ファイルにあります。autoup や bufhwm などの変数の実行時の状態はここに格納されます。
システムの動作中に tune 構造体や v 構造体を変更しないでください。システムの動作中にこれらの構造体のフィールドを変更すると、システムがパニックになることがあります。
システム構成情報の閲覧
システム構成を調べるツールはいくつかあります。ツールには、root 特権が必要なものもあれば、非特権ユーザーが実行できるものもあります。動作中のシステム上で mdb を使うか、あるいは kadb でブートし、カーネルデバッガですべての構造体やデータアイテムを調べることができます。
sysdef
sysdef(1M) コマンドは、System V IPC 設定や、STREAMS チューニング可能パラメータ、プロセスリソースの制限値、tune 構造体と v 構造体の各部分の値などを表示します。たとえば、512M バイトの 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)
|
kstat
kstat データ構造体群は、さまざまなカーネルのサブシステムやドライバによって維持されています。この構造体群は、カーネル内のデータをユーザープログラムに提供する機構を提供します。この機構を利用する場合、プログラムはカーネルのメモリーを読んだり、root 特権を持つ必要はありません。詳細については kstat(3KSTAT)を参照してください。
Solaris 8 リリースから 、コマンド行インタフェースから kstat 構造体群を選択して表示できる kstat(1M) が提供されています。 kstat 情報を処理する Perl モジュール kstat(3EXT) も利用できます。
注 - Solaris 9 リリースは cachefree をサポートしないため、unix モジュール内にあるsystem_pages という名前のkstat構造体群は、 cachefree の統計を記録しません。



