名称
swapinfo ― システムのページングスペース情報
構文
/usr/sbin/swapinfo [-mtadfnrMqws]
説明
swapinfo は、デバイスおよびファイルシステムのページングスペースに関する情報を出力します。swapinfo は、また、次回ブート時のプライマリページングデバイスに関する情報を出力します。
(注意: 「スワップ」という言葉は、旧式の仮想メモリー実現方法を指しています。HP-UX
は実際にはスワッピングではなくページングによって仮想メモリーを実現しています。
このコマンドやその他の用語が「スワップ」に由来する名前を持ち続けているのは歴史的な理由によります。)
デフォルトの場合、swapinfo は標準出力に次のような 2 行のヘッダーを出力し、その後に 1 つのページング領域につき 1 行ずつ出力します。
Kb Kb Kb PCT START/ Kb
TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME
フィールドは、次のとおりです。
| TYPE | | 以下のうちの 1 つとなります。 | dev | | ページング領域は大容量記憶装置上に存在して、デバイス全体を占めています。あるいは、デバイスにファイルシステムがある場合は、
ファイルシステムの終わりとデバイスの終わりの間のスペースを占めています。このスペースはページング専用に確保されており、
ページングに使用されていない場合でも他の目的には使用できません。デバイスページング領域は一般に最も高速なページングを提供します。 | | fs | | ファイルシステムの中で利用できる動的ページングスペース。このスペースが必要になるとシステムはファイルシステムの中でファイルを作成し、
それをページングスペースとして使用します。ファイルシステムページングは一般にデバイスページングよりも低速ですが、
ページングに使用しない時は他の目的 (ユーザーファイル) に使用することが可能です。 | | localfs | | ローカルディスク上に存在するファイルシステム上のファイルシステム
ページングスペース (上の fs を参照) | | network | | 別のマシン上に存在するファイルシステム上のファイルシステム
ページングスペース (上の fs を参照)。このファイルシステムは
NFS を介してローカルマシン上にマウントされていると考えられます。 | | reserve | | 予備のページングスペース。 これは、現在実行中のプロセスが必要とすると考えられるがまだ上記のページング領域の 1 つから割り当てられていないページング領域の量です。
下の「ページング割り当て」の項を参照してください。 | | memory | | メモリー ページングスペース (疑似スワップとも言います)。これは、上記のページング領域のすべてが使い果たされてしまった場合に
ページを保持するために使用できるシステムメモリーの量です。下の「ページング割り当て」を参照してください。この行はメモリーページングが使用可能になっている場合のみ表示されます。 |
|
| Kb AVAIL | | すでに使用されているページングスペースを含めて、1024
バイトのブロックの数で表した (必要に応じて、 最も近い整数で表されたブロック数になるように丸められた)、ページング領域内の使用可能なスペースの総量。 ファイルシステム ページング領域については、この値は必ずしも一定ではありません。これは、現在ページングに割り当てられているスペース
(現在使用されていなくても) に、一般ユーザーが使用可能なファイルシステムの未使用ブロック数を加え、RESERVE
されたブロック数を引いた値 (ただし 0 より小さい値になることはない)
です。AVAIL は、LIMIT が非ゼロである場合は LIMIT より大きくなることは絶対にありません。
ページングスペースは大きなチャンクを単位として割り当てられるので、AVAIL
は最も近い割り当てチャンクまで切り下げられます。 メモリーページング領域についても、この値は必ずしも一定ではありません。これはカーネルによるメモリー割り当てやページング対象のプロセスによるメモリー割り当てを反映するためです。 |
| Kb USED | | ページング領域内の、ページングに使用されるスペースが現在どれくらいあるかを、1K
バイトのブロックの数で表したものです。 メモリーページング領域については、この値には、他の目的に使用されてページングには使用できないメモリーも含まれます。 |
| Kb FREE | | 今後ページングに使用できるスペースの量。これは通常、Kb
AVAIL と Kb USED の差です。 デバイスページング領域の一部が使用不可能である場合は、差があることがあります。その理由として、
ページング領域のサイズが割り当てチャンクサイズの倍数ではないことや、チューニング可能なパラメータである swchunk が十分大きく設定されていなかったことが考えられます。 |
| PCT USED | | Kb USED を Kb AVAIL で割った値を基にして出した、使用された容量のパーセンテージです。Kb
AVAIL が 0 の場合には 100 パーセントです。 |
| START/LIMIT | | デバイスページング領域については、START はページング領域の開始位置となる、大容量記憶装置上のブロックアドレスです。この値は、
ページング専用のデバイスの場合は通常 0 であり、ファイルシステムとページング領域の両方を含むデバイスの場合はファイルシステムの終わりの位置になります。 ファイルシステム ページング領域については、LIMIT は、ページングに使用される
1K バイトのブロックの最大数であり、swapon で指定される limit の値と同じです。ファイルシステムの LIMIT の値が none と指定されている場合は、決まった制限が存在しないことを意味します。
ファイルに使用されたもの以外のすべての領域から、minfree tunefs(1M) を参照) で指定されたブロック数に
RESERVE で指定されたブロック数を加えた分を差し引いた分が使用可能であることを意味します。 |
| RESERVE | | デバイスページング領域に対して、この値は、常に "-"
となります。 ファイルシステム ページング領域に対しては、この値は、一般ユーザーが使用するファイルシステム用に確保された
1K バイトのブロックの数となり、swapon で指定された reserve の値と同じです。 |
| PRI | | swapon で指定された priority の値と同じです。 この値は、デバイスおよびファイルシステム内にページング用のスペースが確保される順序を示します。スペースは、最初に、より低い優先順位の領域から確保されます。priority は 0 から 10 までの値を取ることができます。下の「ページング割り当て」の項を参照してください。 |
| NAME | | デバイスページング領域については、メジャー番号およびマイナー番号がデバイスの
ID に一致する、ブロック型特殊ファイルの名称。swapinfo コマンドは、/dev ツリー内でデバイス名の検索を行います。
一致するブロック型特殊ファイルが見つからない場合には、swapinfo は、たとえば 28,0x15000 といったようなデバイス
ID (メジャー番号およびマイナー番号) を出力します。 ファイルシステム ページング領域については、NAME はページングファイルが保存されるファイルシステム上のディレクトリの名称です。 |
また、-s オプションを指定すると、swapinfo は標準出力に、以下に示す 3 行のヘッダと、次回ブートのために構成されたプライマリページング領域に関する 1 行を出力します。
Kb Kb
TYPE START LENGTH NAME
フィールドは、次のとおりです。
| TYPE | | swapon(1M) は、次回ブート時のプライマリページング領域を記憶装置上にのみ構成できます。 | dev | | 次回ブート時のために構成されたページング領域は大容量記憶装置上に存在して、
デバイス全体を占めています。あるいは、デバイスにファイルシステムがある場合は、
ファイルシステムの終わりとデバイスの終わりの間のスペースを占めています。 |
|
| Kb START | | デバイスページング領域については、START はページング領域の開始位置となる、大容量記憶装置上のブロックアドレスです。この値は、
ページング専用のデバイスの場合は通常 0 であり、ファイルシステムとページング領域の両方を含むデバイスの場合はファイルシステムの終わりの位置になります。
これは、次回ブート時のためのプライマリページング領域を構成する時に swapon(1M) に指定する値と同じです。 |
| Kb LENGTH | | LENGTH は、ページングに使用されるブロックの最大数です。
これは、次回ブート時のためのプライマリページング領域を構成する時に、swapon(1M) に指定する値と同じです。 |
| NAME | | メジャー番号およびマイナー番号がデバイスの ID に一致する、ブロック型特殊ファイルの名称。swapinfo コマンドは、デバイス名を検出するために /dev ツリーを検索します。
一致するブロック型特殊ファイルが検出されなかった場合、swapinfo はデバイス
ID (メジャー値とマイナー値)、たとえば 28,0x15000 を出力します。 |
ページング割り当て
ページング領域はブート時に (カーネル内に設定されるデバイスページング領域の場合)
または swapon コマンド swapon(1M) 参照) によって使用可能にされます。swapon(1M) コマンドはしばしば /etc/fstab の内容に基づいて /sbin/init.d/swap_start で、システムの初期化中に呼び出されます。
ページング領域が使用可能にされると、その領域の一部がページングスペース用に割り当てられます。デバイスページング領域については、
チャンクの端数を残すのみで、デバイス全体が割り当てられます。(割り当てチャンクのサイズはチューニング可能パラメータ swchunk で制御され、通常は
2MB です。) ファイルシステム ページング領域については、swapon に与えられた minimum 値 (最も近い割り当てチャンクまで切り上げられます)
が割り当てられます。
プロセスが作成されるか、またはプロセスが追加スペースを要求してくると、前述の reserve 行に表示されているスペースを増加することによってスペースが確保されます。ページングアクティビティが実際に発生すると、
ページング領域の 1 つ (すでに割り当てられているページング領域で、空きスペースがあり優先順位番号が最も低いもの)
でスペースが使用され、 そのスペースはその領域で使用されているものとして表示されます。
すべてのページング領域で使用されているスペースの合計に、確保されたスペースの量を加えた合計が、
すべてのページング領域で割り当てられているスペース量の合計を超えることができません。
この合計を超過するような追加メモリー要求が出された場合には、システムは次のようないくつかのオプションを試行します。
| 1. | | システムは、ファイルシステム ページング領域内で追加のスペースを割り当てることによって、使用可能なスペースの総量を増加しようとします。 |
| 2. | | ファイルシステム ページング領域内ですべてのスペースを割り当ててしまってもまだ要求が満足されない場合は、前述の memory 行についての項で述べたように、システムはメモリーページングを使用しようとします。(メモリーページングはチューニング可能なパラメータ swapmem_on で制御されます。このパラメータのデフォルトは
1 (オン) です。このパラメータがオフに設定されている場合は、memory 行は表示されません。) |
| 3. | | メモリーページングが一杯であるかオフになっているためにメモリーページングを使用しても要求を満たせなかった場合は、要求が拒絶されます。 この手順は、次のような点で、swapinfo の出力を理解するために重要です。 |
ページングスペースは、(最初に領域が使用可能にされた時に minimum が指定された場合を除いて) にデバイス ページングスペースがすべて確保されてしまうまでは、ファイルシステム
ページング領域では割り当てられません。 これはファイルシステム ページング領域の方が優先順位の値が低い場合でも同様です。
ファイルシステム ページング領域にページングスペースが割り当てられると、そのスペースに対するページングアクティビティがない場合でも、
そのスペースをユーザーファイル用に使用することはできなくなります。
ページングスペース要求は、デバイスやファイルシステムの確保やメモリーページングが不十分であったときには、
確保されたページングスペースの一部がまだ使用されていない場合でも失敗します。したがって、
一部または全部のページング領域について使用量ゼロが示されているときでも、それらの領域のスペースがすべて確保されていれば、
ページングスペース要求が拒絶されることもあり得ます。
使用可能なシステムメモリーは、ページングサブシステムとカーネルメモリーのアロケータ間で共有されます。
したがって、すべての使用可能なディスク ページングスペースが完全に確保されるつまり割り当られる前に、システムがメモリーページの使用状況を表示する場合もあります。
論理ボリュームマネージャ
(LVM)
swapinfo コマンドは、システムが LVM とインストールされている場合に、スワップ論理ボリュームを表示します。スワップ論理ボリュームの変更方法については、LVM コマンドと、lvlnboot および lvrmboot のマンページを参照してください。
たとえば、スワップ論理ボリュームを削除する場合は、以下の LVM コマンドを実行します。
lvrmboot -s
オプション
swapinfo は次のようなオプションを認識します。
| -s | | 現在使用中のデバイスやファイルシステムのページング領域に加えて、swapinfo は、swapon(1M). を使って構成した次回ブート時のプライマリページング領域に関する情報を出力します。 swapon(1M) を使って、次回ブート時のプライマリページング領域が構成されてない場合、swapinfo -s は情報を全く表示できません。この場合、swapinfo -s はエラーメッセージ
"Primary swap for next boot was not set using swapctl()" を表示します。 |
| -m | | AVAIL、USED、FREE、START、LIMIT および RESERVE の値を
KB ではなく MB で表示します。 この値は最も近い整数 (1024^2 の倍数) まで切捨てられます。
これに従って、出力ヘッダーのフォーマットも Kb から Mb に変わります。 |
| -t | | total の TYPE を使用して、合計行を追加します。この行は上に表示されているページング情報のみの合計を示すのであって、すべてのページング領域の合計を示すのではありません。-dfrM のサブセットが指定されている場合、この行は間違いやすいので注意してください。 |
| -a | | カーネルに設定されていて現在は使用不能になっているものも含めて、すべてのデバイスページング領域を表示します。(それらは普通は省略されます。) disabled という語が
NAME の後に表示され、Kb AVAIL、Kb USED、および Kb FREE の値は 0
となります。-a オプションは、-d オプションが指定されている場合、またはデフォルトで -d オプションが有効となっている場合は無視されます。 |
| -d | | デバイスページング領域についての情報のみを出力します。このコマンドは、出力ヘッダーを適切な形に修正します。 |
| -f | | ファイルシステム ページング領域についての情報のみを出力します。このコマンドは、出力ヘッダーを適切な形に修正します。 |
| -n | | ファイルシステム ページング領域情報をまとめて fs と呼ばずに、localfs 領域と network 領域に分類します。 |
| -r | | 確保されたページングスペースについての情報のみを出力します。 |
| -M | | メモリー ページングスペースについての情報のみを出力します。 オプション -d、-f、-n、-r および -M を組み合わせて指定することができます。デフォルトは、-dfnrM となります。 |
| -q | | メッセージなしモードです。 "Kb AVAIL" の値の合計のみを
(オプション -m, Mb AVAIL を指定して) 出力します。すなわちこれは、合計値を速く出すことを必要とするプログラムで使用する可能性のある、システム上で使用可能なページングスペースの総量です
(-d、-f、-r または -M が指定されている場合は、デバイス、ファイルシステム、リザーブ、またはメモリー
ページングスペースのみ)。-q が指定されている場合は、オプション -t および -a は無視されます。 |
| -w | | 割り当てられたサイズがトータルサイズよりも小さいページング領域など、無駄になったスペースを含んでいる各デバイスページング領域に関する警告を出力します。
このオプションは -d も指定されているかデフォルトで設定されているときのみ有効です。 |
戻り値
swapinfo は、正常終了した場合 (警告メッセージが表示された場合も含む)
には 0 を返します。 エラーの発生がレポートされた場合には 1 を返します。
診断
swapinfo は何か問題が起こった場合には、標準エラーにメッセージを出力します。
例
すべてのファイルシステム ページング領域を、合計行を付けてリストします。
警告
swapinfo は一部の情報についてはカーネルアクセスを必要とします。ユーザーがカーネルアクセスに関して適切な特権を持っていない場合、swapinfo は警告を出力し、その情報についてのデフォルトが変更されていないものと仮定します。
swapinfo の出力のフィールド幅とスペーシングは、システム、HP-UX
のリリース、および表示するデータによって異なるので注意が必要です。
ページング割り当ておよびその他のインプリメンテーションの詳細に関するこのマンページの情報は警告なしに変更することがあります。この情報の正確さについては保証されません。
参照
lvlnboot(1M), lvrmboot(1M), swapon(1M), swapon(2), swapctl(2),
fstab(4)