オペレーティング・システムには,カーネルの基本機能や拡張機能を実現するさまざまなサブシステムが含まれています。 カーネル・サブシステム属性は,サブシステムの動作を制御したり,サブシステムの統計情報を維持するカーネル変数を設定するために使用されます。 属性には,ブート時に省略時の値が設定されます。 一部の属性の省略時の値がご使用のシステムで適切でない場合は,最適な性能を得るためにこれらの値を変更する必要があります。
カーネル・サブシステム属性の表示や変更を行うには,以下の手順に従ってください。
使用しているオペレーティング・システムで,特定のカーネル・サブシステム属性がサポートされているかどうかを調べるには,以下のいずれかの方法を使用します。
sysconfig -q
subsystem [attribute] コマンドを使用します。
属性を指定しない場合,システムは,sysconfig
コマンドまたは
sysconfigdb
コマンドで変更できるすべてのサブシステム属性を表示します。
サブシステムが構成されていない場合,オペレーティング・システムは次のようなメッセージを表示します。
framework error: subsystem 'inet' not found
属性を指定すると,その属性に関する情報だけが表示されます。 たとえば,次のようになります。
#
sysconfig -q inet tcbhashsize
inet: tcbhashsize = 32
属性がサポートされていないか,または
sysconfig
でアクセスできない場合,オペレーティング・システムは,次のようなメッセージを表示します。
inet: tcbhashsize = unknown attribute
dbx p
(print) コマンドを使用します。
属性にアクセスできない場合,オペレーティング・システムは,その属性が「定義されていないか,またはアクティブでない (is not defined or active)」というメッセージを表示します。
たとえば,次のようになります。
#
dbx -k /vmunix
dbx version 5.1 Type 'help' for help.(dbx)
p tcp_keepalive_default
"tcp_keepalive_default" is not defined or not active(dbx)
詳細は,
sysconfig
(8)dbx
(1)3.2 属性値の表示
カーネル・サブシステム属性の現在の値やその他の説明情報を表示するには,さまざまな方法があります。 以下の方法のいずれかを使用します。
カーネル・チューナ (dxkerneltuner
) の GUI (グラフィカル・ユーザ・インタフェース) を使って,属性の永久値,現在値 (稼働中),最小値,および最大値を表示します。
この場合,共通デスクトップ環境 (CDE) の「アプリケーション・マネージャ」ウィンドウから GUI にアクセスします。
「システム管理
」アイコンを選択し,次に「モニタリング/チューニング
」アイコンを選択します。
その後,属性を表示したいサブシステムを選択します。
sysconfig -q
subsystem
[attribute] コマンドを使って,指定した属性の現在の (稼働中の) 値を表示します。
または,属性を指定しないで,指定したサブシステムのすべての属性を表示します。
sysconfig -q subsystem [attribute]
たとえば,次のようになります。
#
sysconfig -q vm ubc_maxpercent
vm: ubc_maxpercent = 100
sysconfig -Q
subsystem
[attribute] コマンドを使って,指定したサブシステムの属性の最大値と最小値を表示します。
または,特定の属性を指定して,その属性の情報だけを表示します。
このコマンドの出力には,その属性に対して実行できる操作に関する情報も含まれています。
以下に,sysconfig
属性の一部を示します。
C
- サブシステムの初期ロード時に属性が変更されます。
つまり,この属性はブート時に永続的な変更が行われます。
R
- システムの稼働中に属性をチューニングできます。
つまり,システムが現在使用している値を変更できます。
Q
- この属性の現在値を表示できます (照会できます)。
たとえば,次のようになります。
#
sysconfig -Q vfs bufcache
vfs: bufcache - type=INT op=CQ min_val=0 max_val=50
このコマンドの出力は,bufcache
属性の最小値が 0 で,最大値が 50 であることを示しています。
この出力では,現在の (稼働中の) 値は変更できないことも示しています。
以下に,属性を表示する代わりに,dbx p
(print) コマンドを使用してカーネル変数の現在値を表示する例を示します。
たとえば,次のようになります。
#
dbx -k /vmunix
dbx version 5.1 Type 'help' for help.(dbx)
p ipport_userreserved
5000(dbx)
詳細は,
dxkerneltuner
(8)sysconfig
(8)dbx
(1)3.3 属性値の変更
属性値を変更する方法はいくつかあります。 使用する方法は,使用しているオペレーティング・システムのバージョンによって異なります。 また,属性の現在の (稼働中の) 値を変更するのか,または属性の永久値を変更するのかによっても異なります。 属性値を変更するためには,root としてログインしなければなりません。
以下の項で,現在値と永久値を変更する方法を説明します。
3.3.1 現在値
属性によっては,現在の (稼働中の) 値を変更できるものがあります。
これにより,属性値を変更することでシステム性能が改善できるかどうかを,システムをブートし直すことなく確認することができます。
すべての属性が,システムの稼働中にチューニングできるわけではありません。
また,一時的に変更した内容は,システムをリブートすると失われます。
ある属性が,システムの稼働中に変更できるかどうかを調べるには,sysconfig -Q
コマンドを使用してください。
現在の (稼働中の) 値を変更するには,以下の方法のいずれかを使用します。
カーネル・チューナ (dxkerneltuner
) の GUI を使って,属性の現在値を変更します。
この場合,共通デスクトップ環境 (CDE) の「アプリケーション・マネージャ」ウィンドウから GUI にアクセスします。
「システム管理
」アイコンを選択し,次に「モニタリング/チューニング
」アイコンを選択します。
その後,属性を変更したいサブシステムを選択し,「現在の値
」フィールドに新しい値を入力します。
sysconfig -r
コマンドを使って,属性の現在値を変更します (コマンドでその属性がサポートされている場合)。
次のコマンド構文を使用します。
sysconfig -r subsystem attribute=value
たとえば,次のようになります。
#
sysconfig -r inet tcp_keepinit=30
tcp_keepinit: reconfigured
以下に,属性を変更する代わりに,dbx assign
コマンドを使用してカーネル変数の現在値を変更する例を示します。
ただし,dbx assign
コマンドによって変更した内容は,システムをリブートすると失われます。
次のコマンド構文を使用します。
dbx assign attribute=value
たとえば,次のようになります。
#
dbx -k /vmunix
dbx version 5.1 Type 'help' for help.(dbx)
assign ipport_userreserved=60000
60000(dbx)
詳細は,
dxkerneltuner
(8)sysconfig
(8)dbx
(1)3.3.2 永久値
属性の永久値 (ブート時の値) を変更するには,sysconfigtab
ファイルに,サブシステム名,属性名,および属性の値を記述する必要があります。
ただし,sysconfigtab
ファイルの変更は,手作業では行わないでください。
このファイルを変更するには,以下のいずれかの方法を使用します。
カーネル・チューナ (dxkerneltuner
) の GUI を使って,属性の永久値を変更します。
この場合,共通デスクトップ環境 (CDE) の「アプリケーション・マネージャ」ウィンドウから GUI にアクセスします。
「システム管理
」アイコンを選択し,次に「モニタリング/チューニング
」アイコンを選択します。
その後,属性を変更したいサブシステムを選択し,「ブート時の値
」フィールドに新しい値を入力します。
sysconfigdb
コマンドを使って,属性の永久値を変更します。
次の,コマンド構文を使用します。
sysconfigdb -a -f stanza_file subsystem
stanza_file
はサブシステム名と属性およびその値のリストが記述された特別な形式のファイルです。
このファイルの内容は,sysconfigtab
ファイルにマージされます。
詳細は,
stanza
(4)
新しい属性値を有効にするには,sysconfig -r
コマンドを実行する (システムの稼働中にチューニングできる属性の場合) か,システムをリブートしてください。
また,dbx patch
コマンドを使って変数の値を変更したり,ディスク上の
/vmunix
イメージの値を変更することもできます。
詳細は,
dxkerneltuner
(8)sysconfig
(8)sysconfigdb
(8)