Acho que a limitação será o escrever o BW dos seus discos . De qualquer forma, é importante também escolher o tamanho certo de blocos:
⌂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
... como você pode ver, a velocidade é mais ou menos limitada a cerca de 100 MB / s, mas o uso da CPU varia muito (o tamanho padrão de dd
é 512 bytes).
A solução correta é fallocate
, como no arquivo duplicado vinculado .