クリスマス目前!商品レビューまとめ記事

AWSのEBSボリュームを使う場合、性能劣化を防ぐなら事前ウォーミングは忘れずに!(Windows編)

ども。あいしんくいっと(@ithinkitnet)です。

あまり知られてないかもですが、EBSの仕様として事前ウォーミングアップをしておかないと、初回アクセス時のパフォーマンスが5%~50%低下してしまいます。(マグネティック、SSD問わず)
簡単に言うと、「EBSボリュームを使う場合は事前ウォーミングをしておかないと性能劣化してしまうよ」といった話になります。

事前ウォーミングを行うことによって、パフォーマンス劣化が防げるのであればやっておくにこしたことは無いと思います。
EBSボリュームへの書き込みが頻繁に発生するシステムなら尚更。

新規でEBSを使う場合の事前ウォーミング

EBSを新規(リストア含む)で追加した場合の事前ウォーミングは簡単です。
下記のようなDOSコマンドで対象のEBSボリュームを完全フォーマットするだけで事前ウォーミングを行うことが可能です。

では、手順を見ていきましょう。
新しくボリュームDとしてEBSを追加したとします。
ebs-warming-0

formatコマンドを発行すると「フォーマットしますか?」と聞かれるので「y」を応答します。
するとフォーマットが開始されます。
間違ってもCドライブを指定しないようにしましょう^^;
format ドライブレター: /p:1
ebs-warming-1

完了するとこんな感じ。
ボリュームラベルは必要に応じて設定してください。
ebs-warming-2
見た目に変化はないものの、パフォーマンス劣化はしないハズ・・・。
ebs-warming-3これで新規EBSの事前ウォーミングは完了です。

既存EBSに対しての事前ウォーミング

考えられる主なシチュエーションとしては、スナップショットからリストアしたり、といった時になるでしょうか。
当たり前ですが、新規の時のように完全フォーマットは出来ません。
(したら、データが消えてしまうので・・・)
なので、Windows用のddコマンドを使って事前ウォーミングを行います。

ちなみにLinuxの場合はコチラ
参考 Amazon EBS ボリュームの初期化docs.aws.amazon.com

Windowsにddコマンド導入

zip形式のWindows用ddコマンドを以下からダウンロードします。
参考 dd for windowswww.chrysocome.net

ダウンロードしたら解凍して、dd.exeを適当なフォルダに配置します。
私の場合、Cドライブ直下にbinというフォルダを作成してddコマンドを配置しました。

コマンド実行時にパス指定を省略したいのであれば、必要に応じてPath環境変数に追加して下さい。

ddコマンドを使った事前ウォーミング

実行コマンドはこんな感じになります。

dd.exe if=.PHYSICALDRIVEn of=/dev/null bs=1M –progress –size

PHYSICALDRIVEnの部分は下記のDOSコマンドで調べるか、「diskmgmt.msc」で確認出来ます。
システム領域(Cドライブ)には実行しないようにしましょう。
(PHYSICALDRIVE0がCドライブに相当します)

C:UsersAdministrator>wmic diskdrive get size,deviceid
DeviceID Size
.PHYSICALDRIVE1 107372805120
.PHYSICALDRIVE0 161059207680

事前ウォーミングコマンド実行例)Dドライブに対して
ebs-warming-4何やらエラーが出力されますが、特に問題ないと思います。
インスタンスタイプやEBSサイズにも依存しますが、100GBあたり大体1時間くらいはかかると思います。

ただ、事前に対策出来るのは救いですね。
EBSの性能が劣化して「サーバの書き込みが遅い!」なんてクレームが来るのは嫌ですからねー。
いずれにせよ、EBSの性能劣化を防ぐのであれば、事前ウォーミングは必要です。
覚えておきましょう♪

以上、あいしんくいっとでした。

コメントを残す

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

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)