Linuxの場合VM VMをオフにするか、仮想NICを切断するだけではなく、NAGIOSモニタリングをより詳細にテストしたい。テストしたい、または短時間、空き領域の数%を占めることにより、「ディスク領域アラームを強制する」。
私は私が使うことができることを知っています
dd if=/dev/zero of=/tmp/hd-fillup.zeros bs=1G count=50
またはそのようなもの...しかしこれは時間がかかり、システムをロードし、rmでテストファイルを削除するときに再び時間が必要です。
システムに負荷をかけず、時間がかかるパーティションをすばやく(ほぼ瞬時に)埋める方法はありますか?スペースを割り当てるが、それを「満たす」ことはないものについて考えています。
Linuxシステムでファイルを作成する最も速い方法は、fallocate
を使用することです。
fallocate -l 50G file
男から:
fallocateは、ファイルに割り当てられたディスク領域を操作して、割り当てを解除するか、事前に割り当てるために使用されます。
fallocateシステムコールをサポートするファイルシステムの場合、ブロックを割り当て、初期化されていないものとしてマークすることにより、事前割り当てが迅速に行われ、IOをデータブロックに要求しません。ゼロで埋めることによってファイル。
XFS(Linux 2.6.38以降)、ext4(Linux 3.0以降)、Btrfs(Linux 3.7以降)およびtmpfs(Linux 3.5以降)でサポートされます。
他の選択肢は次のとおりです。
ルートの予約済みのパーセンテージがある場合、そのパーセンテージへの実行などをテストできることも便利です。
fallocate -l 50G big_file
truncate -s 50G big_file
dd of=bigfile bs=1 seek=50G count=0
これら3つの方法はすべて、パーティションをすぐにいっぱいにする可能性があるためです。
ddを使用したい場合は、通常、seekで試すことができます。 seek=file_size_what_you_need
およびセットcount=0
。これにより、システムにファイルがあり、そのsizeが設定したものですが、実際には作成されません。このように使用すると、パーティションサイズよりも大きなファイルを作成できます。
例:3G未満のext4パーティションでの使用。 ddを使用して、メタデータとして存在する5Tファイルを作成します。ブロックスペースはほとんど必要ありません。
df -h . ; dd of=biggerfile bs=1 seek=5000G count=0 ; ls -log biggerfile ; df -h .
出力:
Filesystem Size Used Avail Use% Mounted on
/dev/sda9 42G 37G 2.8G 94% /home
0+0 records in
0+0 records out
0 bytes copied, 4.9296e-05 s, 0.0 kB/s
-rw-rw-r-- 1 5368709120000 Jun 29 13:13 biggerfile
Filesystem Size Used Avail Use% Mounted on
/dev/sda9 42G 37G 2.8G 94% /home
Linuxベースのさまざまなシステムでサポートされているストレスngツールを利用することもできます。
stress-ng --fallocate 4 --fallocate-bytes 70% --timeout 1m --metrics --verify --times