На этот вопрос уже есть ответ здесь:
Чтобы проверить, что наши системы правильно определить, что им не хватает места, нам просто нужны большие файлы на диске, где мы вообще не заботимся об их содержании. В настоящий момент мы используем dd if = / dev / zero [...]
для их создания, что занимает ужасно много времени, особенно при записи нескольких сотен гигабайт на диски SATA потребительского уровня.
Есть ли способ ускорить это? Я думаю о том, чтобы просто записать информацию о том, что файл существует, в таблицу файловой системы без записи содержимого файла, в результате чего получится огромный файл, содержащий все, что было записано на диск раньше.
Я думаю, что ограничение будет BW записи Ваших дисков . Так или иначе важно также выбрать право blocksize:
⌂89% [romano:~/tmp] % time dd if=/dev/zero of=test1.tmp count=2M
2097152+0 records in
2097152+0 records out
1073741824 bytes (1,1 GB) copied, 12,6078 s, 85,2 MB/s
dd if=/dev/zero of=test1.tmp count=2M 0,37s user 3,18s system 27% cpu 12,721 total
⌂86% [romano:~/tmp] % time dd bs=1M if=/dev/zero of=test1.tmp count=1k
1024+0 records in
1024+0 records out
1073741824 bytes (1,1 GB) copied, 11,671 s, 92,0 MB/s
dd bs=1M if=/dev/zero of=test1.tmp count=1k 0,00s user 1,10s system 9% cpu 11,783 total
⌂64% [romano:~/tmp] % time dd bs=100M if=/dev/zero of=test1.tmp count=10
10+0 records in
10+0 records out
1048576000 bytes (1,0 GB) copied, 10,3397 s, 101 MB/s
dd bs=100M if=/dev/zero of=test1.tmp count=10 0,00s user 1,16s system 11% cpu 10,457 total
..., как Вы видите, скорость более или менее ограничена приблизительно 100 МБ/с, но использование ЦП варьируется дико (значение по умолчанию blocksize dd
составляет 512 байтов).
правильное решение fallocate
, как в связанный дубликат .
При использовании BTRFS можно легко уменьшить размер файловой системы:
btrfs filesystem resize <size> <mount point>
, Возможно, необходимо настроить тестовый экземпляр в контейнере LXC или chroot с ограниченным пространством файловой системы, таким образом Вы могли протестировать из пространства и другие условия там.
, Если Вы действительно хотите пойти путем для создания большого файла, я не знаю о пути быстрее, чем dd, хотя теоретически можно было присвоить свободные блоки файлу, на самом деле не пишущий в те блоки. Хотя этому был бы нужен некоторый уровень файловой системы, взламывающий †“, возможно , fallocate делает это, хотя я никогда не использовал его.