क्या मैं धीमी गति से हार्ड ड्राइव का अनुकरण कर सकता हूं?


19

मुझे लगता है कि एक निश्चित आंतरायिक बग केवल तभी प्रकट हो सकता है जब एक धीमी डिस्क रीड रेट होती है। समस्या निवारण मुश्किल है क्योंकि मैं इसे पुन: उपयोग नहीं कर सकता।

बस एक उच्च प्राथमिकता प्रक्रिया के साथ IO gobbling के लघु, वहाँ मेरे लिए एक धीमी हार्ड ड्राइव होने का अनुकरण करने के लिए कोई रास्ता नहीं है?


मुझे याद है कि कुछ बस गति से चलने के लिए हार्डड्राइव बताने के लिए एक कमांड देख रहा हूं। मैं देखूंगा कि क्या मैं इसे खोद सकता हूं।
जेरेमी

man hdparmशायद -X विकल्प पर एक नज़र डालें? वहाँ बहुत कुछ चीजें हैं जहाँ आप अपनी ड्राइव को धीमा करने के लिए उपयोग कर सकते हैं, लेकिन उनमें से कुछ डेटा के लिए गंदा काम कर रहे हैं!
जेरेमी

इसके अलावा, एक नेटवर्क शेयर को एक फ़ोल्डर के रूप में माउंट करने का प्रयास करें (Google आपका मित्र है), शायद वाईफाई पर भी, यदि यह प्रशंसनीय है।
जेरेमी

1
यह एक सीधा जवाब नहीं है, लेकिन: अगर मेरे पास इस तरह एक आंतरायिक बग था, तो मैं शायद Valgrind के तहत प्रक्रिया चलाने की कोशिश करूँगा (यदि यह एक संकलित भाषा में था), क्योंकि संभवतः IO दौड़ की स्थिति पर कब्जा होगा।
पूलि

1
क्या आप किसी एप्लिकेशन के बग या कर्नेल या डिवाइस ड्राइवर के बारे में बात कर रहे हैं? या आप बिल्कुल नहीं जानते? यदि आपने अधिक समझाया तो यह मदद कर सकता है।
पूली

जवाबों:


15

Nbd , नेटवर्क ब्लॉक डिवाइस का उपयोग करें , और उसके बाद उपयोग की दर को सीमित करें trickle

sudo apt-get install nbd-client nbd-server trickle

एक बहुत अच्छा समाधान के लिए +1। हालाँकि, यह वास्तविक परीक्षा नहीं है क्योंकि आप वास्तविक हार्ड डिस्क डिवाइस ड्राइवर पर नहीं जाते हैं, जहाँ समस्या हो सकती है।
यूनिक्स जेनेटर

1
मुझे नहीं लगा कि वह ड्राइवर बग के बारे में बात कर रहा था, लेकिन यह सिर्फ एक धारणा थी। चलो देखते हैं।
पूल

10
क्या इस उत्तर में वास्तविक कमांड जोड़ना संभव है? फिलहाल आप केवल आवश्यक उपकरण स्थापित करने का तरीका दिखाते हैं :)
रिच

5
# प्रतिध्वनि 1> / proc / sys / vm / drop_caches

यह आपको धीमा कर देगा :)

यह आपको कैश्ड पृष्ठ का लाभ लेने के बजाय डिस्क से पढ़ने के लिए बाध्य करेगा।

यदि आप वास्तव में परिष्कृत प्राप्त करना चाहते हैं, तो आप scsi फॉल्ट इंजेक्शन फ्रेमवर्क का उपयोग करके हर nth समय नकली एक रीड एरर जैसा कुछ कर सकते हैं।

http://scsifaultinjtst.sourceforge.net/


1
नोट: यह केवल एक बार कैश छोड़ देगा। तो यह तुरंत फिर से कैशिंग शुरू कर देगा। आप लूप में लपेट सकते हैं।
एंड्रोबिन

@Androbin मुझे वह विचार पसंद है। आप लूप में एक नींद अंतराल भी जोड़ सकते हैं। धन्यवाद!
प्रेट्रकी

4

एक USB 1.1 हब है? या एक धीमी एसडी कार्ड? वे आपको 10mbps के नीचे ले जाएंगे।


अच्छा ... पर्याप्त तकनीकी नहीं है +1 के लिए लेकिन अच्छा है
रोबॉटहैंस

3

यह किसी भी तरह से एक पूर्ण समाधान नहीं है, लेकिन यह अन्य उपायों के साथ संयोजन में मदद कर सकता है: एक I / O अनुसूचक बहुत कुछ प्रक्रिया अनुसूचक की तरह है, और इसे घुमाया जा सकता है।

सबसे विशेष रूप से, आप वास्तव में विभिन्न अनुसूचियों में से चुन सकते हैं:

~# cat /sys/block/sda/queue/scheduler 
noop anticipatory deadline [cfq] 
~# echo "deadline" > /sys/block/sda/queue/scheduler
~# cat /sys/block/sda/queue/scheduler 
noop anticipatory [deadline] cfq 
~# 

deadline अधिक दृढ़ता से प्रतिलिपि प्रस्तुत करने योग्य परिणाम प्राप्त करने में आपकी सहायता कर सकता है।

noop, जैसा कि इसके नाम से पता चलता है, पागलपन से गूंगा है, और आप थोड़े प्रयास से I / O प्रदर्शन पर पूर्ण कहर बरपाएंगे।

anticipatoryऔर cfqदोनों इसके बारे में होशियार होने की कोशिश करते हैं, हालांकि cfqआमतौर पर दोनों के बीच समझदारी है। (जैसा कि मुझे याद है, anticipatoryवास्तव में कर्नेल ने कई अनुसूचियों का समर्थन करना शुरू करने से पहले विरासत में शेड्यूल किया है।)


3

आप एक वर्चुअल मशीन और थ्रॉटल डिस्क एक्सेस का उपयोग कर सकते हैं ... यहां कुछ सुझाव दिए गए हैं कि यह वर्चुअलबॉक्स 5.8 में कैसे किया जाता है। डिस्क छवियों के लिए बैंडविड्थ सीमित करना https://www.virtualbox.org/manual/ch05.html#storage-bandwidth-limit


2

आप एक बड़ी फ़ाइल की एक प्रति चलाने की कोशिश कर सकते हैं, जैसे कि उबंटू स्थापित सीडी का एक आईएसओ, और इसे दो बार चलाएं। यह आपके ड्राइव को थोड़ा धीमा कर देना चाहिए।


जैसा कि सवाल है, "शॉर्ट ऑफ गॉब्बलिंग आईओ" ....
पूली

2

स्वयं हार्ड ड्राइव को धीमा करने की कोशिश करने के अलावा, आप फाइल सिस्टम बेंचमार्किंग टूल्स जैसे कि बोनी ++ का उपयोग करके देख सकते हैं, जो डिस्क I / O का एक बड़ा कारण बन सकता है।

sudo apt-get install bonnie++

1
जैसा कि सवाल है, "शॉर्ट ऑफ गॉब्बलिंग आईओ" ....
पूली

0

कैसे के बारे में make -j64? लेखों में बताया गया है कि नया 200लाइन प्रदर्शन पैच, make -j64कंप्यूटर संसाधनों का एक बहुत खाने का काम था


2
आपको यह बताना चाहिए कि वास्तव में वह कमांड क्या करता है।
पापुकायजा

जैसा कि सवाल है, "शॉर्ट ऑफ गॉब्बलिंग आईओ" ....
पूली

0

क्यों न चलाएं iotopऔर देखें कि क्या आप जिस प्रक्रिया को डिबग करने की कोशिश कर रहे हैं, वह बहुत सारे डिस्क रीड / राइट का कारण बन रही है?


3
मुझे लगता है कि इस उत्तर को अप्रमाणिक के रूप में देखा जाता है क्योंकि यह तथ्य कि इस प्रक्रिया को बहुत सारे आईओ कर रहे हैं, पहले से ही ज्ञात हो सकता है, या अपने आप में कोई समस्या नहीं है। मुद्दा यह है कि इस तरह के समय से संबंधित बग में कुछ प्रकार के बग हैं जो इसे उन IOs को संभालते हैं।
नोवी

0

मैंने हाल ही में एक सेटअप तैयार किया है जहाँ मैंने किया है

  • निर्देशिका को मेरी Google ड्राइव पर ले जाया गया
  • इसे सुपर-डुपर-स्लो क्लाइंट के माध्यम से माउंट किया गया google-drive-ocamlfuse
  • मूल पथ से नए के लिए एक सिमलिंक बनाया

यदि 16 सेकंड की विलंबता काफी धीमी नहीं है, तो आप अपने राउटर को अनप्लग कर सकते हैं।

संदर्भ के लिए, यहां मूल उपयोग मामला है, जहां मुझे इसके लिए विचार मिला: https://github.com/goavki/apertium-apy/pull/76#issuecomment-355007128

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