วิธีกำหนดขนาดไบต์ที่ดีที่สุดสำหรับคำสั่ง dd


21

ฉันรู้ว่าการทำ dd ถ้า = / dev / hda ของ = / dev / hdb ทำสำเนาฮาร์ดไดรฟ์ลึก ฉันได้ยินมาว่าผู้คนสามารถเพิ่มความเร็วในกระบวนการได้โดยการเพิ่มจำนวนไบต์ที่อ่านและเขียนได้ในเวลา (512) ด้วยตัวเลือก "bs"

คำถามของฉันคือ:

กำหนดขนาดที่เหมาะสมที่สุดสำหรับการคัดลอกจากฮาร์ดไดรฟ์คืออะไร?

และ

เหตุใดจึงกำหนดขนาดไบต์ที่เหมาะสมที่สุด


ฉันคิดว่ามันจะต้องแบ่งเท่า ๆ กันอย่างสมบูรณ์ในขนาดของไดรฟ์หรือพาร์ติชัน: ดังนั้นฉันได้ลองกำหนดขนาดไบต์ที่แน่นอนของพาร์ติชันเป้าหมายรับปัจจัยสำคัญและกำหนดบล็อกขนาดใหญ่พอสมควรที่เป็นหลาย หลายปัจจัยที่สำคัญเหล่านี้ ...
PP

คำตอบ:


18

ตามที่ Chris S กล่าวว่าขนาดบล็อกที่เหมาะสมนั้นขึ้นอยู่กับฮาร์ดแวร์ จากประสบการณ์ของฉันมันมักจะมากกว่า 512 ไบต์เริ่มต้น หากคุณทำงานกับอุปกรณ์ดิบรูปทรงเรขาคณิตของระบบไฟล์ที่วางตำแหน่งจะไม่มีผลใด ๆ ฉันใช้สคริปต์ด้านล่างเพื่อช่วย 'เพิ่มประสิทธิภาพ' ขนาดบล็อกของ dd

#!/bin/bash
#
#create a file to work with
#
echo "creating a file to work with"
dd if=/dev/zero of=/var/tmp/infile count=1175000

for bs in  1k 2k 4k 8k 16k 32k 64k 128k 256k 512k 1M 2M 4M 8M 

do
        echo "Testing block size  = $bs"
        dd if=/var/tmp/infile of=/var/tmp/outfile bs=$bs
        echo ""
done
rm /var/tmp/infile /var/tmp/outfile

4
ใน OS X ควรลด "1M ... 8M" เป็น "1m ... 8m"
Matt Beckman

1
คุณสามารถเพิ่ม "เวลา" ในหน้า DD จะมีข่าวสาร additionnal ในสิ่งที่ปริมาณของเวลาคือการใช้จ่ายรอการ IO และสิ่งที่จำนวนเงินที่เป็นผลงานจริง ...
โอลิเวีย Dulac

1
@lain /dev/zeroถูกสร้างขึ้นโดยไม่จำเป็นต้องอ่านจากดิสก์ คุณสามารถdd if=/dev/zero ibs=1M count=32 obs=$bs of=/var/tmp/outfile@ olivier-dulac ได้ดีddพิมพ์ความเร็วแล้ว ฉันไม่คิดว่าtime(หรือ/usr/bin/time) เพิ่มข้อมูลใด ๆ ที่คุ้มค่า
bufh

1

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

ฉันพบว่าขนาดบล็อกของ 2 ^ 15 หรือ 2 ^ 16 ทำงานได้ดีที่สุดสำหรับไดรฟ์ SATA WDC (8mb แคช) ของฉันที่เชื่อมต่อกับตัวควบคุม Adaptec SAS RAID, 4x PCIe, 64-bit FreeBSD 8.0-STABLE แต่สำหรับ thumb drive เก่าราคาถูกขนาด 2 ^ 10 ดูเหมือนจะเร็วที่สุด

"ขนาดที่สมบูรณ์แบบ" มักจะเป็นพลังของทั้งสอง


0

ฉันสามารถรับรองในการวัดผลลัพธ์ของการทดสอบอุปกรณ์ที่ใช้ก่อนที่จะเสียเวลา ฉันโง่ไม่ตื๊อและหลังการวัดจากนั้นปรับขนาดบล็อกของฉันเฉือนระยะเวลา DD ของการถ่ายโอน 590Gb ครึ่ง ค่า BS เดียวกันจะลดเวลาเพียง 20% โดยใช้คำสั่งผสมแคดดี้ / ไดรฟ์ที่แตกต่างกัน

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