डीडी / देव / शून्य से / देव / नल ... वास्तव में क्या होता है


13

कमांड में क्या होता है

sudo dd if=/dev/zero of=/dev/null bs=500M count=1. 

शून्य वास्तव में कहां जाते हैं और सामान्य तौर पर क्या होता है? गति 905 एमबी / एस है

अगर मैं dd को रैमडिस्क करूं तो स्पीड केवल 388 MB / s है। और अगर मैं ddअपने hdd को गति केवल 63.2 MB / s है


1
/dev/nullपरीक्षण के लिए एक अच्छा स्थान है / समय पढ़ने के आपरेशनों। /dev/zeroपरीक्षण / समय के लिए एक अच्छा स्रोत है लिखने आपरेशनों। इस स्रोत और गंतव्य को एक ऑपरेशन में संयोजित करने से बहुत अधिक लाभ नहीं होता है। यह भी सुनिश्चित नहीं है कि यह कोई सार्थक उपरि संख्या प्रदान करता है या नहीं।
चूरा

@sawdust दूसरे रास्ते के आसपास, नहीं?
जेमी

2
हां, @sawdust, आपकी टिप्पणी ऊपर गंदा है (newbies के लिए)। = / dev / sda किसी की हार्ड ड्राइव विभाजन, सामग्री, आदि का अधिलेखित कर देगा = ~ / bigfile.tmp का उपयोग करने के लिए एक बेहतर उदाहरण होगा ...
केविन ट्रैस

2
मुझे पता है कि मैं पार्टी में बहुत देर से आता हूं, लेकिन अगर कोई भी अपने लिए यह कोशिश करना चाहता है: इस आदेश को रूट के रूप में चलाने की कोई आवश्यकता नहीं है, और इसलिए sudo की कोई आवश्यकता नहीं है।
Roel Schroeven

@ जैमी नाह, यह सही तरीका है।
अवन

जवाबों:


14

/dev/zeroपढ़ने पर शून्य बाइट्स की एक अंतहीन स्ट्रीम प्रदान करता है। यह फ़ंक्शन कर्नेल द्वारा प्रदान किया गया है और मेमोरी को आवंटित करने की आवश्यकता नहीं है। सभी लिखते /dev/nullहैं चुपचाप छोड़ दिया जाता है।

नतीजतन, जब आप प्रदर्शन करते हैं dd, तो सिस्टम शून्य बाइट्स में 500 मेगाबाइट उत्पन्न करता है जो बस छूट जाता है। अस्थायी बफर को छोड़कर, इस ऑपरेशन से पहले, दौरान या उसके बाद कोई डेटा संग्रहीत नहीं किया जाता है।

से स्थानांतरण की गति /dev/zeroको /dev/nullहै आपका प्रोसेसर और प्रासंगिक सिस्टम कॉल की गति के द्वारा मुख्य रूप से निर्धारित किया। (आपके मामले में, बफर 500 एमबी बड़ा है, और इसलिए ऑपरेशन आपकी मेमोरी की गति का भी परीक्षण करता है।)


7

मैं आपके लिए इस आदेश का अनुवाद करूंगा:

dd if=/dev/zero of=/dev/null bs=500M count=1

500M आकार ( = ब्लॉक आकार) के ब्लॉक का उपयोग करके आउटपुट फाइल ( ) (वर्चुअल सिंकहोल) में ddइनपुट फाइल ( if) की /dev/zeroआभासी सीमा ( ) की डुप्लिकेट डेटा ( ) की डुप्लिकेट डेटा ( ) से दोहराएं और इसे ( ) केवल एक बार ( ) दोहराएं ।0of/dev/nullbscount1

सामान्य तौर पर, इस कमांड को बस मेमोरी और बस की गति को मापना चाहिए। हालाँकि, यह विफल हो सकता है यदि आपके पास 500MB RAM उपलब्ध नहीं है। तो, एक अर्थ में, यह भी स्पष्ट रूप से मानदंड है कि आपका ओएस कितनी तेजी से बड़ी मेमोरी चंक्स आवंटित कर सकता है।


यदि यह स्मृति को मापता है, तो रैमडिस्क पर लिखना कितना धीमा है?
अगस्त

2
क्योंकि रैमडिस्क को अभी भी एक फाइलसिस्टम के लिए फॉर्मेट किया जाना है, जिसे कर्नेल ड्राइवर द्वारा बनाए रखा जाना चाहिए। इसका मतलब यह भी है कि रैमडिस्क पर लिखने से उपयोगकर्ता के डेटा को कर्नेल स्थान में कॉपी करने का ओवरहेड होगा - बिल्कुल मुफ्त नहीं। / Dev / शून्य या / dev / null के साथ, यह ओवरहेड लगभग शून्य है।
mvp

मैंने पहले कभी "डुप्लिकेट डेटा" नहीं देखा था। मुझे पुराने SunOS मैन पृष्ठों को पढ़ने की याद है जो dd का अर्थ है "कॉपी और कन्वर्ट" (cc लिया गया था)।
डैन प्रिट्स

5

/ देव / नल एक ब्लैक होल है। यह सामान्य लिखने के संचालन के परीक्षण के लिए सटीक नहीं है क्योंकि यह वास्तव में डिस्क के लिए नहीं लिखता है क्योंकि एक सामान्य फ़ाइल होगी। इसके बजाय सिर को डिस्क पर लिखने के बजाय, डेटा को डिवाइस पर लिखने पर तुरंत छोड़ दिया जाता है, इसलिए यह हमेशा सामान्य स्थानीय लेखन की तुलना में तेज़ होगा।

/ देव / शून्य रीड के लिए समान है। इसे पढ़ने के लिए हेड मूवमेंट की आवश्यकता नहीं है, यह केवल अशक्त पात्रों की एक असीम आपूर्ति है, इसलिए यह हमेशा किसी भी स्थानीय रीड की तुलना में तेजी से पढ़ेगा।

दूसरे शब्दों में, यह एक शून्य में परीक्षण की तरह है और सामान्य स्थानीय पाठ और लिखी गई उपज का सही चित्र नहीं देगा।


राम भी शामिल नहीं हैं मुझे लगता है ... तो यह परीक्षण ... घड़ी की गति क्या है?
अगस्त

1
  1. /dev/nullकहीं नहीं है; इसके लिए लिखे गए डेटा को केवल हटा दिया जाता है।

  2. आपकी रैमडिस्क में एक फाइल सिस्टम है जिसका उपयोग करना है। ddफ़ाइल सिस्टम प्रविष्टि बनाना है और फ़ाइल सिस्टम के नियमों का पालन करना है। साथ ही आपका OS आपकी मेमोरी का उपयोग दूसरी चीजों के लिए भी कर रहा है, इसलिए आपके लिखने का काम बाकी है।

  3. नॉन एसएसडी हार्ड ड्राइव सिर्फ प्लेन स्लो होते हैं इसलिए यह सही भी है।

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