はじめに
ディスクの読み書き速度を確認したかったです。
物理ディスクでは個体差はありますがディスク自体の性能で決定されています。
が、VPSやクラウドではディスクは仮想的なものなので、どれぐらいの速度がでるか、というのは事業者によって違います。
その速度の確認コマンドです。あくまで目安として。
下記では1MBのブロックを1024回書き込んでいます。
$ dd if=/dev/zero of=/tmp/hoge bs=1MB count=1024 ; rm /tmp/hoge
1024+0 records in
1024+0 records out
1024000000 bytes (1.0 GB) copied, 4.56644 s, 224 MB/s
$ dd if=/dev/zero of=/tmp/hoge bs=1KB count=1024000 ; rm /tmp/hoge
1024000+0 records in
1024000+0 records out
1024000000 bytes (1.0 GB) copied, 6.02842 s, 170 MB/s
同じデータを連続して書き込む、いわゆるシーケンシャルライトを実行しています。
ブロックサイズが1MBの上の例では 224 MB/s、ブロックサイズが1KBの下の例では170 MB/sとなっています。
大体200MB/sあたりが出れば良い方で、上記の例はそこそこの速度といえるでしょう。
GMOクラウドの例
GMOクラウドを使っていますが、たまにこの値がすごく悪いことがあります。
$ dd if=/dev/zero of=/tmp/hoge bs=1MB count=1024 ; rm /tmp/hoge
1024+0 records in
1024+0 records out
1024000000 bytes (1.0 GB) copied, 74.4594 s, 13.8 MB/s
13.8 MB/s うーん、悪いですね(笑)
GMOクラウドの場合、ディスクのマイグレーション(使っているディスクを変更する)ことができます。
https://support.gmocloud.com/public/guide/portal_manual/disk_migration.html
このマイグレーションを行うことでディスク速度が改善することがあります。
ただしバックアップや作業などで時間がかかるので注意が必要です。
マイグレーションでダメな場合にはサポートに相談しましょう。改善の手立てを考えてくれる場合があります。
なんか重いウェブサーバはディスクアクセスが遅いことが原因だったのでそれを解決した話
http://qiita.com/yousan/items/bb9c55d09514690c7178
注意点など
小さすぎるサイズ
書き込むファイルのサイズが小さすぎる(100MB)と、OSのファイルキャッシュや仮想マシンホスト側のキャッシュに乗ってしまって実測値とかけ離れる場合があります。(1GB/sなど)
ですので1GB以上などのある程度の大きさにしておくことが必要です。
AWS
AWSの場合にはIOPSを保証することができます。
プロビジョンド IOPS SSD (io1) ボリューム
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/EBSVolumeTypes.html#EBSVolumeTypes_piops
AWS インスタンス別ネットワーク帯域・InstanceStore IOPS測定
http://qiita.com/saitara/items/882a3e70639637e24a4f
既存EC2インスタンスにEBSボリュームを追加(アタッチ)する
http://qiita.com/yuppi/items/ceed29f19e2b38fd0a79
ディスク負荷
この作業はディスク負荷を掛けます。
頻繁に行ったり、大きいサイズで行ったりと負荷をかけすぎると事業者から怒られる可能性があります。他の人の迷惑にもなってしまうのでほどほどに注意して行いましょう。