初めに #
Linux環境でテスト用のファイルやダミーデータを作成したいと感じた事はありませんか?
しかし、用途に応じて適切なサイズや内容のファイルを毎回準備するのは手間がかかり非効率です。
そのような場合に活用できるコマンドが dd コマンドです。
dd コマンドでは任意のサイズのダミーファイルを1コマンドで簡単に作成する事ができます。
作成したファイルは以下の用途などで利用する事が可能です。
- システムの挙動検証
- アプリケーションやwebサイトのベンチマーク
- ストレージの関連の速度検証
- ネットワークの転送速度測定
本記事では、Linux初心者向けにddコマンドで500MB・1GB・5GBといった大きなダミーファイルの作成方法を紹介します。
ddコマンドとは #
dd コマンドは、Unix や Linux などの環境で利用できるデータをコピーしたり変換したりするためのコマンドとなります。
本来はデバイス間のデータコピーやバックアップ、ディスクイメージの作成などに使われますが、特定サイズのファイルを正確に作成する用途にも利用することができます。
dd コマンドの基本的な使い方は以下の通りです。
dd if=<入力ファイル> of=<出力ファイル> bs=<ブロックサイズ> count=<ブロック数>
このコマンドは、指定した入力元からデータを読み取り、指定した出力先へコピーする処理となっております。
| オプション | 説明 |
|---|---|
| if | コピー元となる入力データを指定する |
| of | コピー先の出力ファイル名を指定する |
| bs | 1回あたりの読み書きサイズ(ブロックサイズ)を指定する |
| count | 処理するブロック数を指定する |
ダミーファイルを作成する #
では実際に、dd コマンドを使ってダミーファイルを作成する方法をご紹介します。
ダミーファイルを作成する場合、入力の値には /dev/zero を指定します。
/dev/zero は読み出し要求に対して 無限に 0x00 を返すキャラクタデバイスとなります。
そのため実ストレージへのアクセスが発生せず実際のファイルをコピーするよりも高速でファイルを作成する事ができます。
以下は /dev/zero を指定した例となります。
dd if=/dev/zero of=<出力ファイル名> bs=<ブロックサイズ> count=<ブロック数>
500MBのダミーファイルを作成 #
500MB のダミーファイルを作成する場合は、ブロックサイズを 1MB に設定し、500ブロック を書き出すよう指定することで作成できます。
イメージとしては 「ブロックサイズ × ブロック数 = ファイルサイズ」 という掛け算で考えると分かりやすいかと思います。
dd if=/dev/zero of=dumm.dat bs=1M count=500
このコマンドを実行すると、以下のようなメッセージが表示されます。
メッセージには、読み書きしたブロック数やコピーしたバイト数、処理時間や速度が表示され、処理が正しく完了したことを確認できます。
$ dd if=/dev/zero of=dumm.dat bs=1M count=500
500+0 レコード入力
500+0 レコード出力
524288000 bytes (524 MB, 500 MiB) copied, 0.267452 s, 2.0 GB/s
作成されたファイルは以下のように du コマンドを利用してサイズを確認することができます。
$ du -sh dumm.dat
501M dumm.dat
1GBのダミーファイルを作成 #
1ギガバイト(GB)のファイルも先ほどと同様の手順で作成することができます。
厳密には 1GB = 1024MB ですが、ここでは便宜上 1000MB として作成します。
dd if=/dev/zero of=dummy1g.dat bs=1M count=1000
上記を実行すると、1MB のブロックを 1000 個書き出し、合計で 約1GB のダミーファイルが生成されます。
$ dd if=/dev/zero of=dummy1g.test bs=1M count=1000
1000+0 レコード入力
1000+0 レコード出力
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.562169 s, 1.9 GB/s
なお、作成するファイル名や拡張子は自由に指定することが可能です。
例えば test.bin や sample.da のように、用途に合わせて好きな名前を指定できます。
5GBのダミーファイルを作成 #
さらに大きな5ギガバイトのダミーファイルも dd コマンドで作成することが可能です。
今回は ブロックサイズを 1GB に設定し、カウントを 5 に指定して作成します。
dd if=/dev/zero of=dummy5g.dat bs=1G count=5
上記を実行すると、以下のような出力が表示されます。
なお、作成するファイルの容量が大きくなるほど生成にかかる時間は増加します。
極端に大きなファイルを作成すると I/O 負荷が高くなるほか、ディスク容量を逼迫する可能性がありますので注意してください。
$ dd if=/dev/zero of=dummy5g.dat bs=1G count=5
5+0 レコード入力
5+0 レコード出力
5368709120 bytes (5.4 GB, 5.0 GiB) copied, 3.83355 s, 1.4 GB/s
作成されたファイルのサイズは先ほどと同様に du コマンドで確認できます。
$ du -sh dummy5g.dat
5G dummy5g.dat
無事に 5G のダミーファイルが作成されました。
活用用途 #
作成したダミーファイルは、さまざまなシーンや用途で活用することができます。
以下は代表的な用途となっております。
ストレージ性能のベンチマーク #
大容量のダミーファイルを使うことで、ディスクの読み書き速度を簡単に計測することができます。
例えば、作成した 1GB ファイル を SSD に書き込み、処理にかかった時間を測定することで、書き込み性能を調査することができます。
さらに、このファイルをコピーしたり別のドライブに移動したりすることで、転送速度やストレージ間のデータ移動性能もチェックすることができます。
ネットワーク帯域の測定 #
ダミーファイルを利用することで、ネットワーク経由での転送速度(帯域)を簡単に確認できます。
例えば、作成した 1GB のファイルを別のサーバーやローカルのPCに転送し、所要時間や速度を測定することで回線の実効速度やネットワーク機器の性能を簡単にチェックできます。
システムやアプリケーションのテスト #
ダミーファイルは、システムやアプリケーションの動作確認を行う際にも非常に役立ちます。
実際のデータを用意しなくても、所定のサイズのファイルを作成するだけでテストが可能です。
たとえば、Webアプリのファイルアップロード機能では、1GB や 5GB のダミーファイルを使って正しく動作するかを簡単に確認することができます。
ほかにも、コンテンツ配信の速度やキャッシュ動作の確認、大容量ファイルを扱う処理の負荷テストなどにも活用することができます。