Ramdiskをページキャッシュの保存先に設定

Windows8 64bitのローカルサーバにRamdiskを設定しキャッシュファイルの処理時間を計測

SoftPerfect RAM Disk

利用するRamdiskのソフトはSoftPerfect RAM Diskというものを選択。

これまでは、DATARAM RAM Diskを利用してきたが、SoftPerfect RAM Diskの方がインストールや設定がシンプルで簡単に行うことができる。また、パフォーマンスも他のRamdiskソフトよりも高速に読み込みと書き込みが可能なようだ。

インストール

ダウンロードはページの下の方にリンクがあるのでそこから行う。

http://www.softperfect.com/products/ramdisk/

ダウンロードしたexeファイルをダブルクリックし[次へ]で進めていくことで特に問題なくインストールすることができる。

設定

SoftPerfect RAM Diskを起動すると画像の画面になる。

softperfect-ramdisk

プラスマークをクリックすると下の表示となります。

ramdisk-configuration

  • 容量
  • ドライブ名
  • ファイルシステム

を画像のように設定しました。設定したらOKボタンを押します。

softperfect

SドライブがRamdiskとして追加されました。エクスプローラーにもSドライブが追加されたことが確認できます。

adapted-drive

SoftPerfect RAM Diskは、非常に簡単にセットアップができます。

ページキャッシュの処理時間を計測

計測対象としてWordPressの個別記事ページを対象として、その個別記事の静的なHTMLをページキャッシュし、キャッシュ前と後で処理時間を計測します。

計測の方法は、apacheのログに記録する時間をマイクロ秒で記録する機能を利用します。

LogFormatの設定

apacheのLogFormatで%Dを設定するとマイクロ秒を記録することが可能。そのため下の設定をhttpd.confに追加した。

LogFormat "%h %l %u %t \"%r\" %>s %b %D" common
CustomLog logs/access_wordpress38ja2.log common

この設定でログに処理時間が記録されることになる。

計測結果

ブラウザから連続でアクセスしたログは以下のようになった。

通常のハードディスク

192.168.0.2 - - [09/Mar/2014:06:35:03 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 967121
192.168.0.2 - - [09/Mar/2014:06:35:11 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 11003
192.168.0.2 - - [09/Mar/2014:06:35:13 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 7000
192.168.0.2 - - [09/Mar/2014:06:35:15 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 5003
192.168.0.2 - - [09/Mar/2014:06:35:18 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 10003
192.168.0.2 - - [09/Mar/2014:06:35:20 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 7000
192.168.0.2 - - [09/Mar/2014:06:35:23 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 8003
192.168.0.2 - - [09/Mar/2014:06:35:25 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 7997
192.168.0.2 - - [09/Mar/2014:06:35:28 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 6001
192.168.0.2 - - [09/Mar/2014:06:35:30 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 6002
192.168.0.2 - - [09/Mar/2014:06:35:33 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 8001

Ramdisk

192.168.0.2 - - [09/Mar/2014:06:36:21 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 834106
192.168.0.2 - - [09/Mar/2014:06:36:29 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 7965
192.168.0.2 - - [09/Mar/2014:06:36:32 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 8040
192.168.0.2 - - [09/Mar/2014:06:36:34 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 10001
192.168.0.2 - - [09/Mar/2014:06:36:37 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 6996
192.168.0.2 - - [09/Mar/2014:06:36:39 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 5998
192.168.0.2 - - [09/Mar/2014:06:36:42 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 7001
192.168.0.2 - - [09/Mar/2014:06:36:45 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 8003
192.168.0.2 - - [09/Mar/2014:06:36:47 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 6004
192.168.0.2 - - [09/Mar/2014:06:36:49 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 5001
192.168.0.2 - - [09/Mar/2014:06:36:52 +0900] "GET /2014/02/11/hello-test-blog/ HTTP/1.1" 200 10273 6997

双方ともに一度目のアクセスはページキャッシュを生成するコストが入っているので高くなっていて、2回目以降のアクセスは処理時間が大きく減少している。しかし、上のログからは2回目以降(キャッシュヒット時)はそれほどRamdiskの優位性は確認できない。そのため、Apache Benchで計測したRequests per secondを計測した。

C:\xampp\apache\bin>ab -c 10 -n 1000 http://test2.wordpress38ja2.local/2014/02/11/hello-test-blog/

ABを実行したところ、

Requests per second: 191.88 [#/sec] → 通常のハードディスク
Requests per second: 249.47 [#/sec] → Ramdisk

という結果になった。やはりRamdiskのほうが有利であった。

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Ramdiskをページキャッシュの保存先に設定の記事にコメントを投稿