ฉันจะหา Hardware Block อ่านขนาดสำหรับฮาร์ดไดรฟ์ของฉันได้อย่างไร


47

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



1
@Sepero ให้คำตอบที่แท้จริงเท่านั้น
sjas

คำตอบ:


44

lsblkคำสั่งเป็นที่ดีสำหรับการนี้:

lsblk -o NAME,PHY-SeC

ผลลัพธ์ที่ได้:

NAME   PHY-SEC 
sda        512 
├─sda1     512 
├─sda2     512 
└─sda5     512 

3
มันแตกต่างระหว่างขนาดตรรกะและขนาดทางกายภาพหรือไม่?
CMCDragonkai

2
จะไม่ให้ขนาดร่างกายจริง
sjas

7
ใช้งานได้สำหรับฉัน PHY-SEC แสดงทางกายภาพที่ถูกต้องและ LOG-SEC จะแสดงขนาดตรรกะ
soger

31

ลินุกซ์ exposes /sys/block/sdX/queue/physical_block_sizeขนาดเซกเตอร์กายภาพในแฟ้ม แม้ว่าเพื่อให้ได้ประสิทธิภาพที่ดีที่สุดคุณอาจต้องทำการทดสอบเล็ก ๆ น้อย ๆ ด้วยขนาดที่แตกต่างกันและ Meassure ฉันจะไม่ พบ ชัดเจนคำตอบในการที่ใช้ตรงขนาดบล็อกทางกายภาพจะได้รับผลที่ดีที่สุด (แม้ว่าฉันถือว่ามันไม่สามารถเป็นทางเลือกที่ดี)


2
ฉันมีระบบ Debian Lenny (เคอร์เนล 2.6.26) ที่แสดงเฉพาะhw_sector_sizeในตำแหน่งนั้นและระบบ Ubuntu Karmic ใหม่ (เคอร์เนล 2.6.31) ที่ให้ทั้งสองอย่าง ดังนั้นนี่ค่อนข้างขึ้นอยู่กับเคอร์เนลที่ใช้งานอยู่
ต้มตุ๋น quixote

จะไม่ให้ขนาดร่างกายจริง
sjas

@sjas คุณสามารถขยายหรือไม่ คุณรู้เรื่องนี้ได้อย่างไร?
Hashim

1
@Hashim ฉันทดสอบ harddisks เก่า ๆ ที่ฉันมีซึ่งบางอันมี 512b และขนาดเซกเตอร์ 4k superuser.com/a/426015/145072เป็นโซลูชันที่ใช้งานได้จริง ทุกอย่างนอกจากhdparmจะมีแนวโน้มที่จะโกหกคุณ
sjas

28
$ sudo hdparm -I /dev/sda | grep -i physical
Physical Sector size:                  4096 bytes

http://wayback.archive.org/web/20150921015457/https://nxadm.wordpress.com/2010/04/30/4096-physical-block-size-drives/


3
นี่ควรเป็นคำตอบที่ได้รับการยอมรับเนื่องจากเป็นเพียงคำตอบเดียวที่ให้คุณค่าทางกายภาพที่แท้จริง
sjas

4
hdparm -I /dev/sda | grep Sectorเป็น nicer เนื่องจากจะแสดงทั้งขนาดจริงและขนาดพร้อมกันเพื่อการเปรียบเทียบที่ง่ายขึ้น
sjas

7

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

นี่คือสิ่งเล็กน้อยจากhttp://mark.koli.ch/2009/05/howto-whole-disk-backups-with-dd-gzip-and-p7zip.html


3 - กำหนดขนาดบล็อกที่เหมาะสม

สำหรับการสำรองข้อมูลที่รวดเร็วยิ่งขึ้นสามารถช่วยลดขนาดบล็อกที่เหมาะสมของอุปกรณ์ดิสก์ที่คุณต้องการสำรองข้อมูลได้ สมมติว่าคุณกำลังสำรอง / dev / sda นี่คือวิธีที่คุณสามารถใช้คำสั่ง fdisk เพื่อกำหนดขนาดบล็อกที่ดีที่สุด:

rescuecd#/> /sbin/fdisk -l /dev/sda | grep Units

Units = cylinders of 16065 * 512 = 8225280 bytes

โปรดสังเกตว่าเอาต์พุต fdisk ระบุว่า "ภาชนะบรรจุของ 16065 * 512" ซึ่งหมายความว่ามี 512 ไบต์ต่อบล็อกบนดิสก์ คุณสามารถปรับปรุงความเร็วของการสำรองข้อมูลได้อย่างมีนัยสำคัญโดยการเพิ่มขนาดบล็อกเป็นทวีคูณของ 2 ถึง 4 ในกรณีนี้ขนาดบล็อกที่เหมาะสมอาจเป็น 1k (512 * 2) หรือ 2k (512 * 4) BTW รับโลภและใช้ขนาดบล็อก 5k (512 * 10) หรือสิ่งที่มากเกินไปจะไม่ช่วย ในที่สุดระบบจะติดขัดที่ตัวอุปกรณ์และคุณจะไม่สามารถบีบประสิทธิภาพเพิ่มเติมใด ๆ จากกระบวนการสำรองข้อมูล (เน้นเพิ่ม)


ฉันสงสัยว่าความแตกต่างของประสิทธิภาพระหว่างขนาดบล็อกที่ใกล้ที่สุดและเหมาะสมที่สุดสำหรับการกำหนดค่าที่กำหนดนั้นเล็กน้อยมากยกเว้นว่าชุดข้อมูลมีขนาดใหญ่มาก อันที่จริงผู้ใช้ที่ FixUnix (โพสต์จากปี 2007) อ้างว่าเวลาที่เหมาะสมของเขานั้นเร็วกว่าคนที่เหมาะสมที่สุดเพียง 5% บางทีคุณอาจบีบประสิทธิภาพออกไปเล็กน้อยโดยใช้ขนาด "คลัสเตอร์" หรือขนาดบล็อกระบบไฟล์หลาย ๆ

แน่นอนถ้าคุณย้ายออกไปไกลเกินกว่าขนาดบล็อกที่เหมาะสมทั้งสองด้านคุณจะเจอกับปัญหา

บรรทัดล่างคือคุณจะได้รับประสิทธิภาพประมาณ 5% (เช่น 3 นาทีต่อชั่วโมง) ด้วยขนาดบล็อกที่เหมาะสมที่สุดดังนั้นให้พิจารณาว่าคุ้มค่ากับเวลาและความพยายามในการค้นคว้าเพิ่มเติมหรือไม่ ตราบใดที่คุณอยู่ห่างจากค่านิยมที่สุดคุณไม่ควรทนทุกข์


1
ด้วยเหตุผลบางอย่างที่ใช้echo "p" | /sbin/fdisk /dev/sda...แทน/sbin/fdisk -l /dev/sda...? ที่สองจะสะอาดกว่าและจะไม่พยายามทำการเปลี่ยนแปลงใด ๆ
ต้มตุ๋น quixote

คุณจะถาม Mark Kolich (เชื่อมโยง) ให้ดีที่สุด เขากำลังสร้างข้อมูลสำรองและฉันอ้างถึงเพียงบางส่วนของบทความของเขา
Mark C

1
@MarkC /sbin/fdisk -l /dev/sda | grep Unitsรายงานการใช้บทความที่เชื่อมโยง อาจมีการเปลี่ยนแปลงในสองปีที่ผ่านมา ไม่ว่าในกรณีใดฉันได้อัปเดตคำตอบของคุณแล้ว
บ๊อบ

2
IMO นี้เป็นคำตอบที่มีประโยชน์ที่สุดส่วนใหญ่เป็นเพราะตัวหนาย่อหน้าสุดท้าย Linux ทำงานหนักมากในการเพิ่มประสิทธิภาพการเข้าถึงดิสก์ดังนั้นตราบใดที่คุณใช้ io scheduler ที่เหมาะสมและการตั้งค่าบัฟเฟอร์สกปรกสำหรับดิสก์ของคุณขนาดบล็อก 8192 ไบต์ควรจะใช้ได้ในทุกสถานการณ์
soger

4

การถ่ายโอนดิสก์แต่ละครั้งจะสร้างการขัดจังหวะที่โปรเซสเซอร์ต้องจัดการ โดยทั่วไปดิสก์ 50Mb / s จะต้องการสร้าง 100000 ของแต่ละวินาทีที่ขนาดบล็อก 512b ตัวประมวลผลปกติจะจัดการ 10s ของพันเหล่านั้นดังนั้นขนาดบล็อกที่ใหญ่กว่า (2 ^ x) จะมีประโยชน์มากขึ้น (4k เป็นขนาดบล็อกเริ่มต้น FS ในส่วนใหญ่ ระบบที่มีขนาดสูงสุด 64k ISA DMA) จะเป็นประโยชน์มากกว่า ...


คุณช่วยอธิบายได้ไหม
sjas

1
@Sas สิ่งที่เขาหรือเธอพูดคือเห็นได้ชัดว่าแต่ละภาคส่วนจะถูกถ่ายโอนแยกต่างหากพร้อมกับ "ขัดจังหวะ" ที่เกี่ยวข้องซึ่งโปรเซสเซอร์ต้องจัดการ ขนาดบล็อกที่ใหญ่กว่าหมายถึงการขัดจังหวะน้อยลง (และรอบการใช้งาน CPU ที่น้อยลง) สำหรับข้อมูลจำนวนเดียวกัน
ทำเครื่องหมาย C

1

นอกจากนี้คุณสามารถดูผลลัพธ์ของlshwการตรวจสอบผลลัพธ์อื่น ๆ ได้ (และเพราะฉันดูเหมือนจะไม่มีhdparmใน distro ของฉัน) สิ่งนี้อาจช่วยให้แคบลง:

sudo lshw | awk 'BEGIN {IGNORECASE=1;} /SCSI/,!//{print}'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.