Kesu's Blog


IT業界(一応)で働くしがないサラリーマンのブログ。
ビジネスとITに関する情報を不定期に発信しています。
(ビジネス本、自作PCやスマホ、OSSや無料な
ソフトウェア、プログラム開発など)

スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 | -- trackback |  -- comment

△page top

主記憶と仮想記憶、スワップアウトとスワップイン 

そうではないコンピュータも存在していることを承知の上で、一般的なパソコンやサーバなどを前提として記載します。

一般的にコンピュータ上で動作させるプログラムと必要なデータは主記憶(物理メモリ)上に存在しなければならない、という前提があります。
(こういう動作をするコンピュータをノイマン型コンピュータといいます)

逆説的に言えば、プログラム+必要なデータ領域が主記憶を超える容量となるものは実行不可ということになります。

ただ、現実的にはOSが仮想記憶という機能を提供しているが故に、主記憶を超える容量を要求するプログラム+必要なデータのセットを複数実行出来ているかのように見せかけることが可能となっています。
例えば、主記憶が1GBのコンピュータでプログラム+必要なデータ領域として500MBを要するものを3つ動かすことも可能です。
この時、主記憶から溢れる500MB(正確には+OSなどの必要容量相当分)のプログラムやデータは、スワップファイルといわれるファイルに退避され、プログラムの動作に必要な主記憶が確保されます。
逆に、主記憶から溢れスワップファイルに存在するプログラムがが実行されるタイミングでは、スワップファイルからそのプログラムと必要なデータが主記憶に呼び戻され(逆にその分、主記憶に存在しているプログラムやその時点で不要なデータがスワップファイルに退避された上で)実行されます。
この主記憶から仮想記憶へ追い出される動作をスワップアウト、仮想記憶から主記憶に呼び戻される動作をスワップインといいます。

必要なデータと言っているのは、一時点で必要であったがためにメモリ上にデータ領域として存在していても、長期間参照されていないような領域はスワップアウト対象となり、仮想記憶に置かれたまま動作するためです。
次の参照までの間隔が長いデータも同様の扱いとなります。
このような状況にあっても、コンピュータはきちんと動作し、レスポンスを返します。

しかし、頻繁にアクセスされる領域がこの対象となると、そうはいきません。
頻繁にスワップアウト/スワップインが繰り返されることとなり、スワップファイルへのIOが多発、IOネックとなる結果、レスポンスが緩慢になります。
(場合にもよりますが、酷い時には、コンピュータがハングアップしてしまったような状況になることもあります)

基本的に、こうなってしまう前に主記憶を増強したり、プログラムを改修するなどして、主記憶を多く要求しないようにしたりというチューニングを行う必要があります。

尚、その兆候をとらまえるためには、主記憶や仮想記憶の使用量以外に、単位時間あたりのスワップイン/スワップアウト回数、その時々のレスポンス情報、処理数量などの情報を通常時より取得して、増加傾向にないか、ピーク時にどの程度発生しているか、レスポンスの遅延はないか、などなど評価分析を行うことが肝要となります。
(ちなみに、この活動のことをパフォーマンス管理と呼びます)
スポンサーサイト

テーマ: コンピュータ - ジャンル: コンピュータ

△page top

この記事に対するコメント:

△page top

コメントの投稿

Secret

△page top

トラックバック:

トラックバック URL
→http://mkes.blog.fc2.com/tb.php/62-1020d90d
この記事にトラックバックする(FC2ブログユーザー)

△page top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。