Dd कमांड के लिए सबसे अच्छा बाइट आकार कैसे निर्धारित करें


21

मुझे पता है कि अगर dd कर रहा है तो = / dev / hda of = / dev / hdb एक हार्ड हार्ड ड्राइव कॉपी करता है। मैंने सुना है कि लोग एक समय में (512) "ब्स" विकल्प के साथ पढ़े और लिखे गए बाइट्स की संख्या में वृद्धि करके प्रक्रिया को गति देने में सक्षम हैं।

मेरा सवाल यह है कि:

हार्ड ड्राइव से कॉपी करने के लिए आदर्श बाइट का आकार क्या निर्धारित करता है?

तथा

वह आदर्श बाइट आकार क्यों निर्धारित करता है?


मैंने सोचा था कि इसे ड्राइव या विभाजन के आकार में पूरी तरह से विभाजित करना होगा: इसलिए मैंने लक्ष्य विभाजन के सटीक बाइट के आकार को निर्धारित करने, प्रमुख कारकों को प्राप्त करने, और एक बड़े ब्लॉक को निर्धारित करने का प्रयास किया है जो कि एक से अधिक है उन प्रमुख कारकों में से कई ...
पीपी।

जवाबों:


18

जैसा कि क्रिस एस का कहना है कि इष्टतम ब्लॉक आकार हार्डवेयर पर निर्भर है। मेरे अनुभव में यह हमेशा डिफ़ॉल्ट 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" पर उतारा जाना चाहिए।
मैट बेकमैन

1
आप dd के सामने एक "समय" जोड़ सकते हैं, इसके अलावा इस बात पर विचार कर सकते हैं कि IO की प्रतीक्षा में कितना समय व्यतीत हुआ और कौन सी राशि वास्तविक कार्य है ...
ओलिवियर दुलैक

1
@lain /dev/zeroउत्पन्न होता है, इसे डिस्क से पढ़ने की आवश्यकता नहीं है; आप dd if=/dev/zero ibs=1M count=32 obs=$bs of=/var/tmp/outfile@ ओलिवियर-डलाक अच्छी तरह से कर सकते हैं , ddपहले से ही गति को प्रिंट कर सकते हैं; मुझे नहीं लगता time(या /usr/bin/time) किसी भी जानकारी के लायक जोड़ें।
bufh

1

दुर्भाग्य से सही आकार आपके सिस्टम बस, हार्ड ड्राइव नियंत्रक, विशेष ड्राइव पर ही निर्भर करेगा, और उनमें से प्रत्येक के लिए ड्राइवर। सही आकार खोजने का एकमात्र तरीका विभिन्न आकारों की कोशिश करना है। निष्पक्ष चेतावनी है कि कुछ डिवाइस केवल एक ब्लॉक आकार का समर्थन करते हैं, हालांकि यह दुर्लभ है, और आमतौर पर ड्राइवर वैसे भी अंतर बनाते हैं।

मुझे लगता है कि मेरे WDC (8mb cache) SATA ड्राइव के लिए Adaptec SAS RAID नियंत्रक, 4x PCIe, 64-बिट FreeBSD 8.0-STABLE से जुड़े 2 ^ 15 या 2 ^ 16 का ब्लॉक आकार सबसे अच्छा है। लेकिन मेरे सस्ते पुराने अंगूठे ड्राइव के लिए, 2 ^ 10 के आकार सबसे तेज़ लगते हैं।

"सही आकार" लगभग हमेशा दो की शक्ति है।


0

मैं किसी भी समय को बर्बाद करने से पहले उपयोग किए जा रहे डिवाइस पर एक परीक्षण करने के परिणाम को मापने की योग्यता में वाउच कर सकता हूं। मैं बेवकूफी से परेशान नहीं हुआ और मापने के बाद, फिर मेरे ब्लॉक का आकार समायोजित करने से मेरी DD अवधि 590Gb ट्रांसफ़र आधी हो गई। एक ही बीएस वैल्यू ने एक अलग कैडी / ड्राइव कॉम्बो का उपयोग करके केवल 20% समय कम किया होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.