ESXiでダミーファイルを作るメモ

ファイル転送の検証でダミーファイルの作成を行った時のメモ

```
for i in `seq 7`; do
  dd if=/dev/urandom of=/vmfs/volumes/datastore1/dummy/dummy_100gb_${i}.dat bs=100k count=1024000
done
```

- 100GBのダミーファイルを7つ作成する
- urandomからの疑似乱数を書き込む。/dev/randomはハードウェア等のノイズをシード値として真性乱数を生成する。シード値の供給速度には限界があるので、今回の用途ではシード値が枯渇してしまう。
- BlockSizeの目安は100k-1M程度（後述）
- ESXi shellはbashではなくshなので、ブレース展開等の表記法は使えない


# (参考)ブロックサイズによるDD速度の違い

以下のように計測した結果、100k-1M程度が速かった。
キャッシュメモリ容量など、多分ハードウェアによっても変わる。（これはXeon Gold 5220R）

```
[root@verify-diskext:/vmfs/volumes/642fb369-751670ce-c3a8-98f2b326a07c] \
> time dd bs=1K count=1000000 if=/dev/urandom of=test ; echo ;\
> time dd bs=10K count=100000 if=/dev/urandom of=test ; echo ;\
> time dd bs=50K count=20000 if=/dev/urandom of=test ; echo ;\
> time dd bs=80K count=12500 if=/dev/urandom of=test ; echo ;\
> time dd bs=100K count=10000 if=/dev/urandom of=test ; echo ;\
> time dd bs=200K count=5000 if=/dev/urandom of=test ; echo ;\
> time dd bs=300K count=3333 if=/dev/urandom of=test ; echo ;\
> time dd bs=400K count=2500 if=/dev/urandom of=test ; echo ;\
> time dd bs=500K count=2000 if=/dev/urandom of=test ; echo ;\
> time dd bs=600K count=1667 if=/dev/urandom of=test ; echo ;\
> time dd bs=700K count=1429 if=/dev/urandom of=test ; echo ;\
> time dd bs=800K count=1250 if=/dev/urandom of=test ; echo ;\
> time dd bs=900K count=1111 if=/dev/urandom of=test ; echo ;\
> time dd bs=1M count=1000 if=/dev/urandom of=test ; echo ;\
> time dd bs=2M count=500 if=/dev/urandom of=test ; echo ;\time dd bs=4M count=250 if=/dev/urandom of=test ; echo ;\
> time dd bs=8M count=125 if=/dev/urandom of=test ; echo ;\
> time dd bs=10M count=100 if=/dev/urandom of=test ; echo ;\
> time dd bs=100M count=10 if=/dev/urandom of=test ; echo ;\
> time dd bs=1G count=1 if=/dev/urandom of=test ; echo
1000000+0 records in
1000000+0 records out
real    0m 13.40s
user    0m 12.64s
sys     0m 0.00s

100000+0 records in
100000+0 records out
real    0m 9.82s
user    0m 8.98s
sys     0m 0.00s

20000+0 records in
20000+0 records out
real    0m 9.44s
user    0m 8.65s
sys     0m 0.00s

12500+0 records in
12500+0 records out
real    0m 9.49s
user    0m 8.68s
sys     0m 0.00s

10000+0 records in
10000+0 records out
real    0m 9.39s
user    0m 8.81s
sys     0m 0.00s

5000+0 records in
5000+0 records out
real    0m 9.46s
user    0m 8.87s
sys     0m 0.00s

3333+0 records in
3333+0 records out
real    0m 9.51s
user    0m 8.86s
sys     0m 0.00s

2500+0 records in
2500+0 records out
real    0m 9.40s
user    0m 8.86s
sys     0m 0.00s

2000+0 records in
2000+0 records out
real    0m 9.46s
user    0m 8.87s
sys     0m 0.00s

1667+0 records in
1667+0 records out
real    0m 9.48s
user    0m 8.79s
sys     0m 0.00s

1429+0 records in
1429+0 records out
real    0m 9.40s
user    0m 8.68s
sys     0m 0.00s

1250+0 records in
1250+0 records out
real    0m 9.48s
user    0m 8.84s
sys     0m 0.00s

1111+0 records in
1111+0 records out
real    0m 9.52s
user    0m 8.86s
sys     0m 0.00s

1000+0 records in
1000+0 records out
real    0m 9.73s
user    0m 9.08s
sys     0m 0.00s

500+0 records in
500+0 records out
real    0m 9.76s
user    0m 9.19s
sys     0m 0.00s

250+0 records in
250+0 records out
real    0m 9.78s
user    0m 9.17s
sys     0m 0.00s

125+0 records in
125+0 records out
real    0m 9.74s
user    0m 9.20s
sys     0m 0.00s

100+0 records in
100+0 records out
real    0m 9.75s
user    0m 9.21s
sys     0m 0.00s

10+0 records in
10+0 records out
real    0m 9.94s
user    0m 9.37s
sys     0m 0.00s

dd: out of memory
Command exited with non-zero status 1
real    0m 0.00s
user    0m 0.00s
sys     0m 0.00s

============================================

[root@verify-diskext:/vmfs/volumes/642fb369-751670ce-c3a8-98f2b326a07c] \
> time dd bs=100K count=10000 if=/dev/urandom of=test ; echo ;\
> time dd bs=1M count=1000 if=/dev/urandom of=test ; echo ;\
> time dd bs=10M count=100 if=/dev/urandom of=test ; echo ;\
> time dd bs=100M count=10 if=/dev/urandom of=test ; echo ;\
> time dd bs=1G count=1 if=/dev/urandom of=test ; echo
10000+0 records in
10000+0 records out
real    0m 9.46s
user    0m 8.80s
sys     0m 0.00s

1000+0 records in
1000+0 records out
real    0m 9.74s
user    0m 9.10s
sys     0m 0.00s

100+0 records in
100+0 records out
real    0m 9.80s
user    0m 9.19s
sys     0m 0.00s

10+0 records in
10+0 records out
real    0m 9.99s
user    0m 9.36s
sys     0m 0.00s

dd: out of memory
Command exited with non-zero status 1
real    0m 0.00s
user    0m 0.00s
sys     0m 0.00s

[root@verify-diskext:/vmfs/volumes/642fb369-751670ce-c3a8-98f2b326a07c] \
> time dd bs=10K count=100000 if=/dev/urandom of=test ; echo ;\
> time dd bs=1K count=1000000 if=/dev/urandom of=test ; echo ;\
> time dd bs=100 count=10000000 if=/dev/urandom of=test ; echo
100000+0 records in
100000+0 records out
real    0m 9.81s
user    0m 9.20s
sys     0m 0.00s

1000000+0 records in
1000000+0 records out
real    0m 13.36s
user    0m 12.79s
sys     0m 0.00s

10000000+0 records in
10000000+0 records out
real    0m 50.21s
user    0m 49.41s
sys     0m 0.00s

[root@verify-diskext:/vmfs/volumes/642fb369-751670ce-c3a8-98f2b326a07c] \
> time dd bs=1M count=1000 if=/dev/urandom of=test ; echo ;\
> time dd bs=2M count=500 if=/dev/urandom of=test ; echo ;\
> time dd bs=4M count=250 if=/dev/urandom of=test ; echo ;\
> time dd bs=8M count=125 if=/dev/urandom of=test ; echo
1000+0 records in
1000+0 records out
real    0m 9.70s
user    0m 9.07s
sys     0m 0.00s

500+0 records in
500+0 records out
real    0m 9.77s
user    0m 9.11s
sys     0m 0.00s

250+0 records in
250+0 records out
real    0m 9.79s
user    0m 9.15s
sys     0m 0.00s

125+0 records in
125+0 records out
real    0m 9.78s
user    0m 9.19s
sys     0m 0.00s

[root@verify-diskext:/vmfs/volumes/642fb369-751670ce-c3a8-98f2b326a07c] \
> time dd bs=1000K count=1000 if=/dev/urandom of=test ; echo ;\
> time dd bs=900K count=1111 if=/dev/urandom of=test ; echo ;\
> time dd bs=800K count=1250 if=/dev/urandom of=test ; echo ;\
> time dd bs=700K count=1429 if=/dev/urandom of=test ; echo
1000+0 records in
1000+0 records out
real    0m 9.51s
user    0m 8.83s
sys     0m 0.00s

1111+0 records in
1111+0 records out
real    0m 9.50s
user    0m 8.81s
sys     0m 0.00s

1250+0 records in
1250+0 records out
real    0m 9.49s
user    0m 8.87s
sys     0m 0.00s

1429+0 records in
1429+0 records out
real    0m 9.48s
user    0m 8.82s
sys     0m 0.00s
```