システム管理
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

ページングスペース情報

eTEC_ONE
時折のビジター

ページングスペース情報

システムのページングスペース使用率を統計的に知りたい為、24時間に5分間隔でvmstatのpi及びpo値を取得。殆どゼロの結果でしたが、同じタイミングで採ったswapinfoのPCT USEDでは毎時devが6でmemoryが72〜65となっています。この不一致はどういう意味

なのでしょうか?

また、使用率を求める為にはどの様にすればよかったのでしょうか?

お手数をお掛け致しますが、宜しくお願いします。
6 件の返信
nadachi
レギュラーアドバイザー

ページングスペース情報

> vmstatのpi及びpo値

  vmstat(1)によると、

pi ページインされたページ

po ページアウトされたページ

とありますから、これらの数値は、vmstatが計測しているインターバルで、ページのディスクからの読み書きがどれくらいあったか、を示す量。

> swapinfoのPCT USED

は swapinfo(1m) によると

kb USED を kb AVAILで割った値を基にして出した、

使用された容量のパーセンテージです。

 とありますから、これはどれくらいのディスクエリアが、ページングスペースとして使われているか、の

量。

> ページングスペース使用率

はどちらの意味で使ってらっしゃいますか?

システムのページングスペースとして十分な量があるか、を見るのなら swapinfo。 システムのページングスペースとして使っているディスクのI/O量が多くて、複数ディスクに分けたほうが良いかどうか判断したい、とかなら vmstat (とsar -d) でしょう。

eTEC_ONE
時折のビジター

ページングスペース情報

nadachiさん、返信ありがとうございます。

おっしゃる通りで、もしvmstatのpi/poがゼロの時、つまり、ページングがおこなわれていないとき、swapinfoのPCT USEDを始めとする"dev"の使用を示す数値は計上されないはずだと考えていたのですが、実際にデータ取ったので、比較をしてみると、vmstatのpi/poが"0"の時にswapinfoの"dev"のPCT USEDが"6%"の数値で(24間ずっと6%です)、それは何故?というのがこの質問の内容なのです。

数値の信頼性を含めて、pi/poがゼロの時にswapinfoにカウントされる数値はどの様に解釈すればいいのでしょうか?
nadachi
レギュラーアドバイザー

ページングスペース情報

> pi/poがゼロの時にswapinfoにカウントされる数値はどの様に解釈すればいいのでしょうか?

うーーん、たとえ話になりますが。例えば、100Mbytesのメモリを使うプロセスを走らせると、

HP-UXカーネルは100Mbytesのサイズの仮想アドレスを

プロセスに割り振り、プロセスが実行されるにつれて、メモリアクセスがあると、その仮想アドレスに物理メモリを割り振ります。同時に、このページをこっそりfreeにするときに、ページの内容をどこかに待避させなければなりませんから、ページングスペースを割り当てます。

 しばらくして、vhandデーモンがfree memoryを作るために、このページへのアクセスが長時間ないことを見つけて、このページの内容をページングスペースに書き、メモリページはフリーとなり、他の用途に使えるようになる。このインターバルでは po のカウントが一瞬増えるはずです。

 この動作が終わったあと、po のカウントは 0 に戻ります(ディスクへのwriteが終わりましたから)。ですが、そのページの内容がページングスペースに置かれていることは変わりないですから、kb USEDは下がりません。ですんで swapinfo のPCT USED も下がりません。
hazelwood
信頼あるコントリビューター

ページングスペース情報

脇から口をはさんですいませんが、別のたとえ話をしてみます。

ドアのところに入退室のセンサーがある部屋があるとします。

ここで、センサーは出入りだけを報告しますので、vmstatのpi/poに相当します。

最初からセンサーのデータをモニターしていれば、何人部屋の中にいるか分かりますが、「システム起動後にvmstatを起動」ということは、途中からセンサーのモニターを始めたのと同じことになります。

つまり、この時点では、何人部屋の中にいるかは分かりません。(これを調べるのがswapinfo)

長時間出入りがないことと、部屋の中の人数は直接には関係しません。

(ここまでは、pi/poが0で、swapinfoが0でないことの説明です。)

実際のシステムはもっと複雑で、piが発生してもswapinfoの使用量は減らず、プロセスが終了して初めてswapinfoの使用量が減ります。

swapinfoのmemory行については、「メモリをスワップスペースの一部と仮定する(psudo swap)」ものであり、これがまた難解にしている一因と思います。

masaakio65
レギュラーアドバイザー

ページングスペース情報

swapinfoでdev のused があるのは過去にメモリー不足があったからでは?

デマンドページングなんで必要なければpage out したままですし。

man swapinfo に書かれているように、memory swapは一番最後に使われます。ただ単にmemory swap として使えない用途で使われてしまっているためにそうみえているだけです。mlock() するとかです。

eTEC_ONE
時折のビジター

ページングスペース情報

皆さん、本当にありがとうございます。

とてもよくわかりました。

おっしゃる様に、実際にpi/po値のゲージカウントがノンカウントなのにPCT USEDの値が一定か緩やかな変動(実測では緩やかなマイナス曲線)で保持されているなら、そう気付くべきでしたが全く気付かず。。皆さんのアドバイスのお陰です。

ありがとうございました。