[トップページ] [FAQ 一覧]

対象:EBS

【ファーストタッチペナルティとは】回避するディスクを総アクセスするコマンド





ファーストタッチペナルティとは


スナップショットやAMIからEBSを使用したインスタンスを生成する場合注意が必要です。なぜならディスクI/Oの性能が極端に落ちる場合があるからです。
スナップショットやAMIはS3上にあります。これをEBSにコピーした場合でもすぐにコピーされるのではなく、ブロックごとに初めてアクセスする場合にS3からEBSへコピーされるようです。
(同じブロックのアクセスはすでにコピーされるので高速となる)
この様に初回アクセス時に性能が低下することを"ファーストタッチペナルティ(First Touch Penarty)"と呼びます。ファーストタッチレイテンシーと呼ぶ場合もあるようです。


回避する方法


これを回避するにはEBSをコピーした後ですべてのブロックをアクセスするとよいでしょう。これですべてのブロックがS3からEBSへコピーされます。
以下コマンドの例です。


dd if=\\.\PHYSICALDRIVEn of=/dev/null bs=1M --progress --size




PHYSICALDRIVEnとは





この中でPHYSICALDRIVEnという表示があります。これを確認するにはWindowsで以下のコマンドを実行します。


C:\wmic diskdrive get deviceid
DeviceID
\\.\PHYSICALDRIVE2
\\.\PHYSICALDRIVE0
\\.\PHYSICALDRIVE1



dd.exeをダウンロードする


Linux系は標準でddコマンドが用意されていますが、Windowsでは存在しません。
以下からダウンロードが可能です。

http://www.chrysocome.net/dd

参考:Amazon EBS ボリュームの初期化
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/ebs-initialize.html


Invoke-Command でdd.exeを呼ぶとエラー


バージョンによりますが、Invoke-Command でdd.exeを呼ぶとエラーが表示されますが処理は実行されました。
2019年の時点としてメモとして残しておきます。

Invoke-Command remotehostname -scriptblock {c:\tool\dd}


【超重要】本ページは2019/09/02に記載されました。情報が古くなっている可能性があります。




[ 一覧に戻る]


【注意事項】本ページの内容は個人的に調査した結果がであり内容が正しいことは保証されません。
またAWSサービスは常に改良、アップデートされており本ページの内容が古く誤った内容になる可能性もあります。変更になっても本ページが正しく更新されるとは限りません。
あくまでも参考程度でご覧ください。内容により発生したいかなる時間的損害、金銭的損害、その他の損害に関しても何人も保証しません。