home > VPS用語集 > この記事

VPS選びはメモリーに注意!

VPSがメモリー不足にならないために

VPSサーバーを探していると、よく「保証メモリー」とか「最大メモリー」とかいった言葉を耳にすると思います。

メモリーが多い方がなんとなく良さそうに聞こえますが、一体何がどう良くなるのでしょう?

ここでは、VPSサーバー選びで気になるメモリーについてまとめてみました。

そもそも「メモリー」って何だ?

何事も基本が大事!
そもそも、メモリーって何なのかをハッキリさせていきましょう。

メモリーとは日本語で「記憶装置」といいます。
コンピューターが計算をしていく上で、一時的に記憶させておきたいデータを入れておく箱のようなものです。

一般に「メモリー」というと、半導体記憶装置のことを指す場合が多いですが、厳密に言えばデータを記憶する全てのものが「メモリー」になります。
例えば、ハードディスクやフロッピーディスク、CDRなんかも実はメモリーなんですね。

でも、一般にはこれらの長期的に保存する装置をストレージ(補助記憶装置・二次記憶装置)と言い、半導体記憶装置のことをメモリー(主記憶装置)と言う場合が多いです。

なので、以下では半導体記憶装置のことを「メモリー」と呼びますね。

メモリーの特徴

メモリーが他の記憶装置と異なる大きな点は3つあります。

1つは、一時的にしか記憶できないという点。
メモリーで保存した情報は、パソコンの電源を切ると消えてしまいます。ハードディスクと違って、あくまで「CPUが計算に使うための記憶」なのです。

2つ目は、CPUから直接読み込まれるという点。
ハードディスクやUSBメモリは、直接CPUから読み込むことができません。CPUが何かを計算をする時に直接アクセスできるのはメモリーだけ!
だから、パソコン(又はサーバー機)の速度を直接左右する要因になるんです。

また、メモリーは安定性にも非常に大事です。
メモリーが不足するとパソコンはフリーズしたり、落ちてしまったり、思うように動いてくれません。
VPSサーバーがメモリー不足に陥ると、サーバーが落ちてしまいます。

3つ目は、速度がメチャクチャ早いということ。
メモリーはCPUから直接アクセスされるので、速度が重要です。CPUの計算速度はとても早いので、ハードディスクのような悠長な速度でデータをやりとりしていたのでは間に合いません。
メモリーのアクセス速度は、なんと1/1,000,000,000秒!それに対して、ハードディスクのアクセス速度は1/1,000秒です。レベルが違い過ぎますね!

このように、メモリーはコンピューターの性能を直接左右する大事な装置なのです。

VPS選びで気をつける「メモリー」

さて、メモリーの大切さが分かったところで、VPSサーバーを選ぶときに気をつける点をまとめましょう。

保証メモリーってなんだ?

VPSサーバーって、何それ?おいしいの?」でも述べたように、VPSサーバーではCPUやメモリーの使用割り当てがあらかじめ決められています。
これが「保証メモリー」です。

同じサーバー機の中にどれだけ人が増えても、この「保証メモリー」は、あなた専用の領域だと保証されています。

最大メモリーってなんだ?

たまに「最大メモリー2GB!」なんて謳っているVPSの広告を目にしたりしますよね?これを「保証メモリー」だと勘違いしてしまうと大きな誤算になりますよ~(^^;)

最大メモリーとは、「サーバー機内に空きがあった場合に、善意で割り当ててもらえるメモリー領域」です。
運良くあなたの借りたVPSサーバーが動いている実機に空きがあれば、最大メモリーになる事もあるでしょう。
しかし、期待は禁物!そんなラッキーなことはなかなか起こりません!毎年当たらない宝くじの事を思い出してください。

最大メモリーは宝くじ!と覚えましょう。
でも6億円よりは当たる確率高いと思いますけど(笑)

メモリー不足でも大丈夫!スワップって何だ?

メモリーの大切さが分かると、メモリー不足がとても怖くなるものです。
特に大規模なシステムを構築しようと思っている場合には、メモリー不足はとても気になるところだと思います。

そこで紹介しておきたいのがスワップです。

スワップ(swap)とは?

スワップ(swap)とは、メモリが不足した場合にハードディスクの一部(swap領域)や記憶用のファイル(swapファイル)にメモリデータの一部を避難させる機能のことです。
windowsではナゼか、スワップ機能のことを「仮想メモリ」とか言っちゃうわけですが...。
まあ、いつもの誤植か誤訳かトンチンカンだから気にしないでOKです!スワップはスワップ、仮想記憶は仮想記憶、本当は別らしいです。

スワップが使えない仮想化エンジンもある!

スワップは便利なのですが、どのVPS仮想化エンジンでもスワップ機能が使えるわけじゃないのが難点です。この機能がない仮想化エンジンがOpenVZ(virtuozzo)です。だから、OpenVZ(virtuozzo)だとメモリ不足になりやすいんです。

(※注 VMホストのカーネルが最新のOpenVZではスワップが利用可能な場合がある。例えば、カゴヤ・クラウドVPSではOpenVZでありながらスワップが最大メモリー容量の2倍確保されている。)

スワップはバランスが命!

次に、スワップの細かいデータの動きについて書くと、「メモリが足りなくなった時にデータをスワップ領域に移す」というより、プログラムが動いてる以上は常にデータはスワップ領域に移されています。
メモリ上で活動が少なくなったデータは、スワップ領域に追い出されて、空いたメモリ領域を他のデータなり、バッファなりキャッシュなりとイロイロ便利に使うわけですね。
逆にスワップ領域のデータを利用したくなったらスワップからメモリにデータを戻したり、まあ忙しく働いてくれます。
こんな風にメモリからスワップ領域にデータを移すことをスワップアウト、逆にスワップ領域→メモリの流れをスワップインとか言いますね。

あと、メモリとスワップの間でデータを出し入れすることをページングといいます。
このページングが激しいと、データを出し入れするのに忙しくてサーバーが遅くなることもあるから気をつけましょう!
一時的ならありだけど、普段からページングが激しいようならデータの出入力の効率が悪いかもしれません。
メモリとスワップ領域のバランスは同じくらいがいいと言われてるので、メモリ2GBのサーバーを借りたなら、同じ2GBのスワップを確保するのが一般的です。
この辺はプログラムによっても違ってくるから、重い処理をする場合は調節すると良いでしょう!

この記事のまとめ

  • メモリーは一時的にしか記憶できない。
  • メモリーはCPUから直接読み込まれる唯一の記憶装置。
  • メモリーのアクセス速度はメチャクチャ早い。
  • VPSの「保証メモリー」はあなた専用の領域。
  • VPSの「最大メモリー」は宝くじ。
  • スワップとは、メモリーデータの一部を避難させる機能。
  • OpenVZ(virtuozzo)だとスワップが使えない。
  • メモリーとスワップ領域のバランスは同じくらいがいい!

メモリーとスワップの使い方を考えてからVPSを選ぶといいかも♪
ほんじゃ!