この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
ども。あいしんくいっと(@ithinkitnet)です。
あまり知られてないかもですが、EBSの仕様として事前ウォーミングアップをしておかないと、初回アクセス時のパフォーマンスが5%~50%低下してしまいます。(マグネティック、SSD問わず)
簡単に言うと、「EBSボリュームを使う場合は事前ウォーミングをしておかないと性能劣化してしまうよ」といった話になります。
事前ウォーミングを行うことによって、パフォーマンス劣化が防げるのであればやっておくにこしたことは無いと思います。
EBSボリュームへの書き込みが頻繁に発生するシステムなら尚更。
新規でEBSを使う場合の事前ウォーミング
EBSを新規(リストア含む)で追加した場合の事前ウォーミングは簡単です。
下記のようなDOSコマンドで対象のEBSボリュームを完全フォーマットするだけで事前ウォーミングを行うことが可能です。
では、EBSの事前ウォーミング手順を見ていきましょう。
新しくボリュームDとしてEBSを追加したとします。
formatコマンドを発行すると「フォーマットしますか?」と聞かれるので「y」を応答します。
するとフォーマットが開始されます。
間違ってもCドライブを指定しないようにしましょう^^;
format ドライブレター: /p:1
完了するとこんな感じ。
ボリュームラベルは必要に応じて設定してください。
見た目に変化はないものの、パフォーマンス劣化はしないハズ・・・。
これで新規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サイズにも依存しますが、100GBあたり大体1時間くらいはかかると思います。
ただ、事前ウォーミングでパフォーマンス対策出来るのは救いですね。
EBSの性能が劣化して「サーバの書き込みが遅い!」なんてクレームが来るのは嫌ですからねー。
いずれにせよ、EBSの性能劣化を防ぐのであれば、事前ウォーミングは必要です。
覚えておきましょう♪
以上、あいしんくいっとでした。