VPSのメモリはどれくらい必要?用途別比較

VPSのスペックの1つとして、メモリ容量は重要です。VPSで行いたいことによって、必要なメモリ容量は変わってきます。今回は、VPSのメモリがどのぐらい必要かということを、事例を元に紹介します。

 

■テストレベルの使い方なら512MBでも足りる

■WordPress+nginx+php-fpmの構成なら1GBは欲しい

■複雑な構成ならメモリはさらに必要

■ローカルでテストして必要メモリを割り出す

■テストレベルの使い方なら512MBでも足りる

VPSのプランを選ぶ上で、メモリの容量がどの程度必要かという点は、よく考える必要があります。容量が多いに越したことはありませんが、その分料金が上がってしまいますので、必要なメモリ容量を把握したうえで、適したプランを選ぶ必要があります。

メモリが不足していても、Linuxにはスワップ(仮想メモリ使用時に不必要なメモリ領域のデータを一時的に書き込んでおく領域)の仕組みがありますので、動作自体は可能です。ただ、スワップが頻発すると動作速度が落ちてしまいますので、スワップが極力起こらないように、十分なメモリを用意することが望ましいです。

VPSの使い方にはいろいろありますが、シンプルな使い方として、テスト用にレンタルサーバーとほぼ同様のレベルで使う方法があります。よくあるパターンとしては、以下のような構成が考えられます

 

・WebサーバーとしてApacheをインストールする

・データベースサーバーとしてMySQLをインストールする

・PHPを動作させる

・phpMyAdminでMySQLを操作する

・WordPressを動作させる

 

上記の構成が最低限動作するようにインストールや設定を行って、実際にメモリをどの程度消費するか調べてみたところ、250~300MB程度でした。したがって、このレベルの使い方をするのであれば、メモリが512MBのVPSでも動作は可能だと言えます。

 

 

■WordPress+nginx+php-fpmの構成なら1GBは欲しい

VPSの使い道として多いのは「WordPressをnginxで動作させる」という使い方です。WordPressは巨大化に伴って徐々に動作が重くなっていますので、Webサーバーとしてnginxを使って、極力高速に動作させたいというニーズが多いです。

nginxでPHPのアプリケーションを動作させる際には、「php-fpm」というソフトと組み合わせることが一般的です。レンタルサーバーの場合、PHPのページにアクセスがあると、その都度PHPのファイルが読み込まれて実行され、アクセスが終わったらメモリから消えます。これに対してphp-fpmでは、一度読み込んだPHPをメモリに保持して、次回のアクセスの際には読み込み済みのものを使います。

この仕組みによって、php-fpmではPHPの読み込み時間が短縮され、その分高速に動作します。一方で、読み込んだPHPをメモリに保持するので、その分メモリを多く消費します。

また、php-fpmでは、ユーザーが同時にアクセスしてくるのをさばくために、プロセスを複数起動しておきます。プロセスの数を多くするほど多くのアクセスを処理できますが、その分メモリの消費も増えます。

インストールした時点のWordPressで、php-fpmのプロセスを5個にした場合だと、300MBぐらいのメモリでも動作します。しかし、WordPressはプラグインを多数組み合わせることが多く、そうなるとメモリの消費量が増えます。また、アクセスが多いサイトの場合だと、php-fpmのプロセスの数をもっと増やしたいところです。

このことから考えると、WordPress+nginx+php-fpmの構成でWebサイトを公開するなら、メモリは最低でも1GBは欲しいところです。

 

 

>■複雑な構成ならメモリはさらに必要

WordPressをはじめとして、現在の多くのWebサイトでは、データベースを組み合わせて動的な出力を得ることが多いです。このような場合、動的な処理をいかに速く行うかが、サイト全体の高速化につながります。

そこで、動的なサイトでは「キャッシュ」(Cache)を多用します。キャッシュとは、処理に時間がかかるデータを、高速なデバイス(メモリなど)に蓄えておき、同じところへのアクセスがあったときにキャッシュの内容を使うようにして、処理を高速化する仕組みです。

多くの場合、キャッシュしたデータはメモリに保存されます。そのため、扱うデータの規模が大きくなるほど、キャッシュとして必要なメモリも増えることになります。

例えば、データベースとしてMySQLを使う場合、MySQL自体にキャッシュの機能があり、キャッシュに割り当てるメモリ容量を設定することができます。大量のデータを高速に扱う必要があるECサイトなどの場合、キャッシュに割り当てるメモリをなるべく多くすることが望ましいです。

また、WordPressをはじめとして、多くのソフトで「Memcached」というキャッシュが使われています。Memcachedは汎用的なキャッシュのシステムで、プログラム内で扱う各種のデータをキャッシュする際に使われます。「Mem」の名前の通り、データをメモリにキャッシュしますので、Memcachedを使う場合もメモリを多く必要とします。

さらに、ニュースや有名サイトに紹介されたりして、突発的に大量のアクセスがあった時など、大量の処理をさばくために、一時的に多くのメモリが必要になる場面もあります。

これらのことから考えて、企業サイトなど、常時安定的に運用する必要がある場合は、メモリ容量は十分に確保しておくべきだと言えます。

 

 

■ローカルでテストして必要メモリを割り出す

ここまでで述べたように、必要なメモリ容量は、開発する内容によって異なります。そこで、VPSを契約する前に、ローカルでテスト環境を作って必要なメモリを割り出しておくと良いでしょう。

WindowsやMacの上で仮想マシンを動作させるソフトとして、OracleのVirtualBoxがあります(https://www.virtualbox.org/)。VirtualBoxをインストールして、その上でCent OSやUbuntuなどのOSを動作させれば、ローカル上でVPSと同じようなサーバー環境を得ることができます。

Cent OSやUbuntuでは、メモリの全体的な消費状況は「free」というコマンドで調べることができます。また、各プロセスがどの程度メモリを消費するかを調べるには、「top」というコマンドを使います(図1)。

VirtualBoxでは、仮想マシンに割り当てるメモリを変えることもできます(図2)。VPSのメモリサイズを想定して、割り当てメモリをいろいろと変えてみる。実際にWebサイトやアプリが使われる状況、本番環境と同じような処理による負荷をかけてみて、その際のサイトやアプリのレスポンス状況を確認してみると良いでしょう。

 

図1 topコマンドでメモリの消費状況を調べる

図1 topコマンドでメモリの消費状況を調べる

 

図2 VirtualBoxでは仮想マシンに割り当てるメモリを変えることができる

図2 VirtualBoxでは仮想マシンに割り当てるメモリを変えることができる

 

 

 

うちだ
サービスクリエーション本部所属        (監修:とみなが)       

オススメ記事

関連サービス

VPS VPSクラウド