ความแตกต่างระหว่างคำสั่ง dd สองคำนี้คืออะไร


23

ความแตกต่างระหว่างสองddคำสั่งที่มีความแตกต่างbsและcountค่าต่าง ๆตราบใดที่คำสั่งนั้นคูณด้วยเหมือนกัน ตัวอย่างเช่น:

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

4
คำสั่งทั้งสองจะใช้เวลานาน ใช้urandomถ้าคุณต้องการตัวเลขสุ่ม ใช้ศูนย์ถ้าคุณต้องการอินพุตที่รวดเร็วของบางสิ่ง
นิลส์

คำตอบ:


26

เท่าที่ผลลัพธ์นั้นเกี่ยวข้องพวกเขาจะทำเช่นเดียวกัน ความแตกต่างคือวิธีการddประมวลผลข้อมูล และในความเป็นจริงทั้งสองตัวอย่างของคุณค่อนข้างสุดขีดในเรื่องนั้น: bsพารามิเตอร์บอกddจำนวนข้อมูลที่ควรบัฟเฟอร์ลงในหน่วยความจำก่อนที่จะส่งออก

ดังนั้นโดยพื้นฐานแล้วคำสั่งแรกจะพยายามอ่าน 2GB ในสองชิ้นของ 1GB และหลังจะพยายามอ่าน 2GB ทั้งหมดในครั้งเดียวแล้วส่งออกไปยังaaไฟล์


17

ผลลัพธ์จะเหมือนกัน แต่ในกรณีแรกddจะเขียนบล็อก 1GB สองบล็อกในขณะที่บล็อก 2GB หนึ่งวินาที ความแตกต่างคือddช่วยให้บล็อกที่ถูกคัดลอกในหน่วยความจำ คุณจะต้องใช้ RAM 1GB ในกรณีแรกและ 2GB ในวินาที

ในความคิดของฉันไม่จำเป็นต้องใช้บล็อคขนาดใหญ่ดังกล่าว คุณสามารถทำการทดสอบสองสามครั้ง แต่ในกรณีของฉันฉันได้รับความเร็วที่มากขึ้นด้วยบล็อคที่เล็กกว่า (<1MB)


9

คนแรกจะใช้หน่วยความจำ 1G เติมด้วยข้อมูลจากไฟล์อินพุตและส่งออกสองครั้ง

ส่วนที่สองจะใช้หน่วยความจำ 2G เติมด้วยข้อมูลจากไฟล์อินพุตและส่งออก


2

ขนาดบล็อกที่ใช้ควรตรงกับการตั้งค่าความเร็วที่ดีที่สุดสำหรับอุปกรณ์ต้นทางและเป้าหมาย

คุณสามารถเห็นความแตกต่างได้ดีที่สุดหากคุณพยายามคัดลอกอุปกรณ์ LV การใช้ BS ขนาดเล็กมากจะขัดจังหวะกระบวนการอ่านที่ไม่จำเป็น การใช้ขนาด BS ที่ใหญ่มากจะทำให้รอนานในระหว่างการเขียน

เนื่องจาก LVs มาตรฐานประกอบด้วยชิ้นส่วนขนาด 4 MB ซึ่งเป็นขนาดที่ดีสำหรับการเข้าถึงดิสก์ทางกายภาพฉันจึงใช้ bs = 4M สำหรับสิ่งเหล่านี้

ลองทดสอบกับ 16K หรือ 256M - คุณจะสังเกตเห็นความแตกต่าง - และดูตัวบ่งชี้ดิสก์ระหว่างการคัดลอก ...


บทลงโทษสำหรับบล็อกขนาดเล็กหรือใหญ่จะถูกชดเชยโดยการแคชที่ทำโดยเคอร์เนล ดูที่นี่สำหรับมาตรฐานขนาดเล็ก
Gilles 'หยุดชั่วร้าย'

@Gilles ฉันไม่จำตัวเลขในการทดสอบของฉันได้ แต่มันน่าทึ่งกว่าของคุณมาก คุณใช้ harddisk-setup แบบใดในการทดสอบ ฉันอยู่บนฮาร์ดแวร์ RAID 5 สตริปใน 5 ดิสก์ (SAS 15k) กับ 128 KB ขนาดแถบ
นิลส์

ดิสก์ SATA ไม่มี RAID หรือเครื่องไม่ทำงาน ฉันจำรายละเอียดไม่ได้
Gilles 'หยุดชั่วร้าย'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.