ラベル ファイル の投稿を表示しています。 すべての投稿を表示
ラベル ファイル の投稿を表示しています。 すべての投稿を表示

2017年2月3日金曜日

Windows Linux 任意のサイズを指定してファイルを作成する

テスト等である程度のサイズのファイルを作成したい際、コマンドでファイルを作成できます。特に大きいサイズのファイルを作成する際は、以下のコマンドが非常に便利です。

Windowsの場合は、コマンドプロンプトからfsutilコマンドを使います。
  fsutil△file△createnew△[ファイル名]△[ファイルサイズ]

例えば、C:¥temp フォルダの中にサイズ 1024byteでファイル名 1k.txtを作成する場合
  fsutil△file△createnew△C:¥temp¥1k.txt△1024

Linux の場合は、ddコマンドを使います。
  dd△if=[ファイルを作るまての元データ]△of=[作成するファイル名]△bs=[bytes]△count=[blocks]

例えば、/tmpディレクトリの下にサイズ 1024byteでファイル名 1k.txtを作成する場合
※ファイルの中身はランダムなデータ(/dev/urandom)
  dd△if=/dev/urandom△of=/tmp/1k.txt△bs=1024△count=1
  ※bs × count のサイズでファイルが作成されます。そのため、上記例の場合は、bs=1、count=1024 としても同じサイズのファイルが作成出来ます。

また、Linux の場合はアンパサンド(&)を付ければ、バックグラウンドで処理することが出来ます。
例えば、/tmpの下に1MBのファイルを3つ(1m1.txt、1m2.txt、1m3txt)を作成する場合は、
  dd△if=/dev/urandom△of=/tmp/1m1.txt△bs=1024△count=1024△&
  dd△if=/dev/urandom△of=/tmp/1m2.txt△bs=1024△count=1024△&
  dd△if=/dev/urandom△of=/tmp/1m3.txt△bs=1024△count=1024△&
を実行することで各コマンド終了を待たずに、他の作業をすることが出来ます。
バックグラウンド処理の終了状況はjobs コマンドで確認できます。


ご指摘、ご質問などはコメントへお願いします。

2017年1月11日水曜日

Linux ディスク使用量とブロックサイズについて

Linuxのファイルとディレクトリの、サイズやディスク使用量を取得する主なコマンドとして、
    df コマンド
    du コマンド
    ls コマンド(-l オプション)
があります。

ディスク使用量とは、実際にディスクへ割り当てられた大きさを意味しています。

ディスクはブロックサイズ毎に割り当てられるため、ディスク使用量は最低でも必ずブロックサイズと同じになります。
つまり、ブロックサイズが4kの場合、どんなに小さなファイルを作っても、ディスク使用量は必ず4kになります。
また、どのような大きさのファイルを作成しても、必ず4kで割り切れるディスク使用量になります。

各ディスクのブロックサイズは、コマンドで変更が出来ます。

ブロックサイズを大きくした場合、
    メリット…ディスクへの書き込み速度が向上する
      ※ブロックサイズ単位で(ディスク容量が割り当てられて)ディスクへ書き込みが実行されるため
    デメリット…作成できるファイル(ディレクトリも)が少なくなる
      ※ブロックサイズ単位でディスク容量が割り当てられるため

ブロックサイズを小さくした場合、(大きくした場合の逆ですが)
    メリット…作成できるファイル(ディレクトリも)が多くなる
    デメリット…ディスクへの書き込み速度が低下する

あらかじめ、主にサイズが大きいファイルの数が多いことが見込まれる場合は、ブロックサイズを調節すると、パフォーマンスの向上を期待できます。
ただし、本来あまりディスク容量を必要としないファイル(小さなファイルやディレクトリ)を作成した場合もブロックサイズ分のディスク容量が割り当てられてしまうので、留意が必要です。

ディスクへの書き込み速度が影響するのは、ブロックサイズ以上のファイルを作成した場合です。
また、ディスクへ作成できるファイル(ディレクトリ)の数は、i-node数を越えることは出来ません。

ご指摘、ご質問などはコメントへお願いします。