Bu iki dd komutu arasındaki fark nedir?


23

Farklı olan iki ddkomut bsve aynı countdeğerle çarptıkça değerleri arasındaki fark nedir? Örneğin:

  1. dd if=/dev/random of=aa bs=1G count=2
  2. dd if=/dev/random of=aa bs=2G count=1

4
Her iki komut da yaş alacaktır. Rasgele sayılara ihtiyacınız varsa urandom kullanın . Bir şeyin hızlı girişine ihtiyacınız varsa, sıfır kullanın .
Nils,

Yanıtlar:


26

Nihai sonuç söz konusu olduğunda, aynısını yapacaklardır. Fark, ddverilerin nasıl işleneceği ile ilgilidir . Ve aslında, her iki örneğiniz de bu konuda oldukça aşırı: bsparametredd çıktılanmadan önce belleğe ne kadar veri tamponlaması gerektiğini .

Bu nedenle, esas olarak, ilk komut 1GB'lik iki parça halinde 2GB okumaya çalışacak ve ikincisi bir seferde 2GB'nin tamamını okumaya ve daha sonra dosyaya çıkarmaya çalışacaktıraa .


17

Sonuç aynı olacak, ancak ilk durumda ddikinci 2GB'lık blokta iki adet 1GB'lık blok yazacak. Aradaki fark, ddkopyalanan bloğu bellekte tutar. İlk durumda 1 GB, ikinci durumda 2 GB RAM'e ihtiyacınız olacak.

Bence bu kadar büyük blokları kullanmaya gerek yok. Birkaç test yapabilirsiniz, ancak benim durumumda daha küçük bloklarla (<1MB) daha yüksek bir hız elde ediyorum.


9

Bunlardan ilki 1G belleği alacak, giriş dosyasındaki verilerle dolduracak ve iki kez çıktısını alacak.

İkincisi 2G belleği alır, giriş dosyasındaki verilerle doldurur ve çıkarır.


2

Kullanılan blok büyüklüğü, kaynak ve hedef cihaz için en iyi hız ayarlarına uygun olmalıdır.

LV aygıtını kopyalamaya çalışırsanız farkı görebilirsiniz. Çok küçük bir BS boyutu kullanılması gereksiz okuma işlemini kesecektir. Çok büyük bir BS boyutunun kullanılması, yazma sırasında uzun süre beklemeye yol açacaktır.

Standart LV'ler normalde 4 MB'lık parçalardan oluştuğundan, fiziksel diske erişim için de iyi bir boyuttur çünkü bunlar için bs = 4M kullanıyorum.

16K veya 256M ile deney yapmayı deneyin - farkı not edin - ve kopyalama sırasında disk göstergesini izleyin ...


Küçük veya büyük blok ebatları için verilen cezalar, çekirdek tarafından gerçekleştirilen önbellek tarafından bir miktar telafi edilir. Mini benchmark için buraya bakın .
Gilles 'SO- kötülük' dur '14

@Gilles Testlerimdeki sayıları hatırlamıyorum, ancak sizinkinden çok daha çarpıcıydı. Testinizde hangi fiziksel harddisk kurulumunu kullandınız? Mine, 128 KB ile 5 diske (SAS 15k) dizilmiş bir donanım RAID 5'teydi. şerit boyutu
Nils,

SATA diskleri, RAID yok, aksi halde boşta makine. Kesin özellikleri hatırlamıyorum.
Gilles 'SO- kötülük'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.