Kedua perintah akan memakan waktu lama. Gunakan urandom jika Anda membutuhkan nomor acak. Gunakan nol jika Anda hanya membutuhkan input cepat dari sesuatu.
Sejauh hasil akhirnya, mereka akan melakukan hal yang sama. Perbedaannya terletak pada bagaimana ddproses data. Dan sebenarnya, kedua contoh Anda cukup ekstrim dalam hal itu: bsparameter memberi tahu ddberapa banyak data yang harus disangga ke dalam memori sebelum mengeluarkannya.
Jadi, pada dasarnya, perintah pertama akan mencoba membaca 2GB dalam dua potongan 1GB, dan yang terakhir akan mencoba membaca seluruh 2GB sekaligus, kemudian mengeluarkannya ke aafile.
Hasilnya akan sama tetapi dalam kasus pertama ddakan menulis dua blok 1GB sementara di yang kedua blok 2GB. Perbedaannya adalah bahwa ddmenjaga blok yang disalin dalam memori. Anda akan membutuhkan 1GB RAM untuk casing pertama dan 2GB untuk RAM kedua.
Menurut pendapat saya tidak perlu menggunakan blok besar seperti itu. Anda dapat melakukan beberapa tes tetapi dalam kasus saya, saya mencapai kecepatan yang lebih besar dengan blok yang jauh lebih kecil (<1MB)
Ukuran blok yang digunakan harus sesuai dengan pengaturan kecepatan terbaik untuk perangkat sumber dan target.
Anda dapat melihat perbedaannya jika Anda mencoba menyalin perangkat LV. Penggunaan ukuran BS yang sangat kecil akan mengganggu proses baca yang tidak perlu. Penggunaan ukuran BS yang sangat besar akan menyebabkan menunggu lama saat menulis.
Karena LVs standar biasanya terdiri dari 4 MB, yang juga merupakan ukuran yang baik untuk akses disk fisik, saya menggunakan bs = 4M untuk ini.
Cobalah untuk bereksperimen dengan 16K atau 256M - Anda akan perhatikan perbedaannya - dan perhatikan indikator disk saat menyalin ...
Hukuman untuk ukuran blok kecil atau besar agak diimbangi oleh caching yang dilakukan oleh kernel. Lihat di sini untuk benchmark mini.
Gilles 'SANGAT berhenti menjadi jahat'
@Gilles Saya tidak ingat angka-angka dalam tes saya, tetapi mereka jauh lebih dramatis daripada Anda. Pengaturan fisik hard disk mana yang Anda gunakan dalam pengujian Anda? Milik saya pada perangkat keras RAID 5 bergaris di 5 disk (SAS 15k) dengan 128 KB. ukuran garis.
Nils
Disk SATA, tanpa RAID, jika tidak mesin idle. Saya tidak ingat spesifikasi persisnya.
/dev/urandom
, bukan/dev/random
. Lihat security.stackexchange.com/questions/3936/… , security.stackexchange.com/questions/3259/… , ...Jawaban:
Sejauh hasil akhirnya, mereka akan melakukan hal yang sama. Perbedaannya terletak pada bagaimana
dd
proses data. Dan sebenarnya, kedua contoh Anda cukup ekstrim dalam hal itu:bs
parameter memberi tahudd
berapa banyak data yang harus disangga ke dalam memori sebelum mengeluarkannya.Jadi, pada dasarnya, perintah pertama akan mencoba membaca 2GB dalam dua potongan 1GB, dan yang terakhir akan mencoba membaca seluruh 2GB sekaligus, kemudian mengeluarkannya ke
aa
file.sumber
Hasilnya akan sama tetapi dalam kasus pertama
dd
akan menulis dua blok 1GB sementara di yang kedua blok 2GB. Perbedaannya adalah bahwadd
menjaga blok yang disalin dalam memori. Anda akan membutuhkan 1GB RAM untuk casing pertama dan 2GB untuk RAM kedua.Menurut pendapat saya tidak perlu menggunakan blok besar seperti itu. Anda dapat melakukan beberapa tes tetapi dalam kasus saya, saya mencapai kecepatan yang lebih besar dengan blok yang jauh lebih kecil (<1MB)
sumber
Yang pertama akan mengambil 1G memori, isi dengan data dari file input dan output, dua kali.
Yang kedua akan mengambil 2G memori, mengisinya dengan data dari file input dan output.
sumber
Ukuran blok yang digunakan harus sesuai dengan pengaturan kecepatan terbaik untuk perangkat sumber dan target.
Anda dapat melihat perbedaannya jika Anda mencoba menyalin perangkat LV. Penggunaan ukuran BS yang sangat kecil akan mengganggu proses baca yang tidak perlu. Penggunaan ukuran BS yang sangat besar akan menyebabkan menunggu lama saat menulis.
Karena LVs standar biasanya terdiri dari 4 MB, yang juga merupakan ukuran yang baik untuk akses disk fisik, saya menggunakan bs = 4M untuk ini.
Cobalah untuk bereksperimen dengan 16K atau 256M - Anda akan perhatikan perbedaannya - dan perhatikan indikator disk saat menyalin ...
sumber