सवाल यदि रैम सस्ता है, तो हम सब कुछ रैम में क्यों नहीं लोड करते हैं और इसे वहां से चलाते हैं?


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

बेशक, वर्तमान ऑपरेटिंग सिस्टम इसका समर्थन नहीं कर सकता है, लेकिन क्या इस कारण राम का उपयोग इस तरह से नहीं किया जाता है?


127
2017-08-27 15:20


मूल


आप मानते हैं कि रैम सस्ता है। 1TB रैम की लागत कितनी है? - Alan Shutko
आप जो वर्णन करते हैं उसे रैमडिस्क कहा जाता है और लोग जो भी आप वर्णन करते हैं वह पहले से ही करते हैं। मैं रामडिस्क का उपयोग कर अपने अधिकांश प्रोग्राम मेमोरी में लोड करता हूं। आपको ऐसा करने के लिए सिस्टम मेमोरी और सॉफ़्टवेयर का उपयोग करने वाले विशेष हार्डवेयर की भी आवश्यकता नहीं है। - Ramhound
हम कवर के तहत, इस सीमा तक करते हैं कि एक दिया गया ओएस इसका समर्थन करता है। विंडोज़ "डिस्क कैश" के लिए "अप्रयुक्त" रैम का उपयोग करता है, और मुझे लगता है कि लिनक्स के कई संस्करण भी करते हैं। लेकिन रैम में इसे फिट करने के लिए बहुत अधिक डिस्क है। - Daniel R Hicks
"सस्ता" एक सापेक्ष शब्द है। कुछ साल पहले की तुलना में स्मृति की प्रत्येक बिट सस्ता है, लेकिन हार्ड ड्राइव पर भंडारण की तुलना में यह अधिक महंगा है। और वैसे भी प्रगति का मार्च यह सुनिश्चित करेगा कि कार्यक्रम हमेशा उपलब्ध सभी रैम को भरें चाहे कितना भी उपलब्ध हो; अगर हर किसी के कंप्यूटर में अचानक अधिक रैम उपलब्ध था, डेवलपर्स अपने कार्यक्रमों में और सामान डाल देंगे। - jhocking
Google इंटरनेट पर रैम को लोड करता है - Ari


जवाब:


रैम का उपयोग इस तरह से नहीं किया जाता है:

  1. सामान्य डेस्कटॉप (डीडीआर 3) रैम सस्ता है, लेकिन इतना सस्ता नहीं है। विशेष रूप से यदि आप अपेक्षाकृत बड़े डीआईएमएम खरीदना चाहते हैं।
  2. संचालित होने पर रैम अपनी सामग्री खो देता है। इस प्रकार आपको बूट समय पर सामग्री को फिर से लोड करना होगा। मान लें कि आप 100 जीबी की एक एसएसडी आकार की रैम डिस्क का उपयोग करते हैं, जिसका मतलब है कि लगभग दो मिनट की देरी होती है जबकि डिस्क से 100 जीबी की प्रतिलिपि बनाई जाती है।
  3. रैम अधिक शक्ति का उपयोग करता है (डीआईएमएम प्रति 2-3 वाट कहें, एक निष्क्रिय एसएसडी के समान)।
  4. इतनी रैम का उपयोग करने के लिए, आपके मदरबोर्ड को बहुत सारे डीआईएमएम सॉकेट और उनके लिए निशान की आवश्यकता होगी। आमतौर पर यह छह या उससे कम तक सीमित है। (अधिक बोर्ड स्पेस का मतलब अधिक लागत है, इस प्रकार उच्च कीमतें।)
  5. अंत में, आपको अपने प्रोग्राम चलाने के लिए रैम की भी आवश्यकता होगी, इसलिए आपको सामान्य RAM आकार में काम करने की आवश्यकता होगी (उदा। 18 जीआईबी, और आपके द्वारा उपयोग किए जाने वाले डेटा को स्टोर करने के लिए पर्याप्त)।

ऐसा कहकर कि: हाँ, रैम डिस्क मौजूद हैं। यहां तक ​​कि डीआईएमएम सॉकेट के साथ पीसीआई बोर्ड और बहुत उच्च IOps के लिए उपकरणों के रूप में। (एसएसडी का विकल्प बनने से पहले ज्यादातर कॉर्पोरेट डेटाबेस में उपयोग किया जाता है)। ये चीजें हैं सस्ता नहीं हालांकि।

यहां निम्न-अंत रैम डिस्क कार्ड के दो उदाहरण दिए गए हैं जो इसे उत्पादन में बनाते हैं:

ध्यान दें कि केवल एक बनाकर ऐसा करने के तरीके हैं राम डिस्क आम काम स्मृति में।

आप ऐसा कर सकते हैं:

  1. अस्थिर (गतिशील) स्मृति के साथ इसके लिए एक समर्पित भौतिक ड्राइव का उपयोग करें। या तो एक उपकरण के रूप में, या एक एसएएस, सैटा या पीसीआई [ई] इंटरफ़ेस के साथ।
  2. आप बैटर पावर स्टोरेज के साथ ऐसा ही कर सकते हैं (प्रारंभिक डेटा को कॉपी करने की आवश्यकता नहीं है क्योंकि यह बैकअप पावर वैध होने तक इसकी सामग्री को तब तक रखेगी)।
  3. आप DRAMS (सरल, अधिक महंगे) की बजाय स्थिर रैम का उपयोग कर सकते हैं।
  4. आप सभी डेटा रखने के लिए फ़्लैश या अन्य स्थायी भंडारण का उपयोग कर सकते हैं (चेतावनी: फ्लैश में आमतौर पर सीमित संख्या में लिखने के चक्र होते हैं)। यदि आप केवल फ्लैश के रूप में फ्लैश का उपयोग करते हैं तो आप बस एसएसडी में चले गए हैं। यदि आप सब कुछ गतिशील रैम में संग्रहीत करते हैं और बिजली पर बैकअप फ्लैश करने के लिए सहेजते हैं तो आप उपकरणों पर वापस चले जाते हैं।

मुझे यकीन है कि अमिगा आरएडी से वर्णन करने के लिए और भी कुछ तरीका है: आईओपीएस में रैम डिस्क को रीसेट करना, लेवलिंग पहनना और जी-डी जानता है कि क्या। हालांकि, मैं इसे छोटा कर दूंगा और केवल एक और आइटम सूचीबद्ध करूंगा:

एसडीडी कीमतों के विरुद्ध डीडीआर 3 (वर्तमान डीआरएएम) कीमतें:

  • डीडीआर 3: € 10 प्रति जीबीबी, या € 10,000 प्रति टीआईबी
  • एसएसडी: महत्वपूर्ण रूप से कम। (लगभग 1/4 वें से 1/10 वें।)

176
2017-08-27 15:28



दो महत्वपूर्ण बिंदुओं को मारने के लिए +1: एचडी अभी भी रैम से सस्ता है, और रैम अस्थिर है। रैम आपकी कार्य बेंच है, और आपका एचडी गोदाम है। Nuf sed। - Chad Harrison
@ हेनेस - सॉफ़्टवेयर रैमडिस्क समाधान के साथ पूरे ड्राइव को स्मृति में लोड करने का सुझाव नहीं दे रहा था। आप एक यांत्रिक ड्राइव से फ़ोटोशॉप को जंक्शन बिंदुओं का उपयोग करके रैमडिस्क में लोड कर सकते हैं और प्रदर्शन बेहतर होगा या एक एसएसडी स्थापना के रूप में अच्छा होगा। - Ramhound
"रैम के सस्ते के लिए +1, लेकिन वह सस्ता नहीं"। एक त्वरित खोज से पता चलता है कि एसएसडी ड्राइव वर्तमान में क्षमता और निर्माता के आधार पर 75 सेंट के बीच एक गिग के लिए बेच रही हैं। क्षमता के आधार पर डीडीआर 3 रैम मॉड्यूल, प्रति जीबी $ 7-10 के बीच बेचते हैं, इसलिए रैम से एसएसडी लागत का अनुपात 15: 1 तक हो सकता है। - KeithS
RAM loses its contents when powered off. सटीक होने के लिए, केवल अस्थिर रैम करता है लेकिन गैर अस्थिर रैम उदाहरण के लिए, बंद होने पर भी सब कुछ रखता है फ्लैश चिप्स। इस अर्थ में, एसएसडी रैम से अलग नहीं है बल्कि इसका एक उप प्रकार है। - Saul
मैं असहमत हूं। एसएसडी पर फ्लैश सेल को बिजली की आवश्यकता नहीं हो सकती है, लेकिन एसएसडी पर नियंत्रक और अन्य इलेक्ट्रॉनिक्स ड्रॉ पावर। अधिक शक्ति नहीं है, लेकिन लगभग एक आधुनिक डीआईएमएम (1-3 वाट) द्वारा बनाई गई शक्ति के समान ही है। - Hennes


ऑपरेटिंग सिस्टम पहले से ही ऐसा करते हैं पेज कैश:

कंप्यूटिंग में, एक पृष्ठ कैश, जिसे अक्सर डिस्क कैश कहा जाता है, त्वरित पहुंच के लिए ऑपरेटिंग सिस्टम द्वारा मुख्य मेमोरी (रैम) में रखे डिस्क-समर्थित पृष्ठों का "पारदर्शी" कैश होता है। पेज कैश आमतौर पर पेजिंग मेमोरी प्रबंधन के साथ कर्नेल में कार्यान्वित किया जाता है, और यह अनुप्रयोगों के लिए पूरी तरह से पारदर्शी है।

जब आप किसी डिस्क से कोई पृष्ठ पढ़ते हैं, तो आपका ऑपरेटिंग सिस्टम उस डेटा को स्मृति में लोड करेगा, और उस स्मृति को तब तक छोड़ देगा जब तक कि उस स्मृति के लिए इसका बेहतर उपयोग न हो। यदि आपके पास पर्याप्त स्मृति है, तो आपका ओएस केवल एक बार प्रत्येक पृष्ठ को पढ़ेगा, और उसके बाद मेमोरी से इसका उपयोग करें। ओएस वास्तविक डिस्क IO करने का एकमात्र कारण यह है कि अगर उसे किसी ऐसे पृष्ठ को पढ़ने की आवश्यकता है जो पहले से ही स्मृति में नहीं है, या यदि कोई पृष्ठ लिखा गया है (जिस स्थिति में, संभवतः आप इसे डिस्क पर सहेजना चाहते हैं)।

इस तरह से काम करने का एक फायदा यह है कि आपको पूरे हार्ड ड्राइव को स्मृति में लोड करने की ज़रूरत नहीं है, जो उपयोगी नहीं है अगर यह फिट नहीं होगा, और इसका मतलब यह भी है कि आप उन फ़ाइलों को पढ़ने में समय बर्बाद नहीं करते हैं जो आपके अनुप्रयोग नहीं करते हैं जरुरत। एक और फायदा यह है कि जब भी ओएस को अधिक मेमोरी की आवश्यकता होती है तो कैश को त्याग दिया जा सकता है (आपके प्रोग्राम को क्रैश होने की तुलना में आपकी अगली डिस्क थोड़ी धीमी होनी चाहिए क्योंकि वे स्मृति से बाहर हैं)। साथ ही, यह उपयोगी है कि उपयोगकर्ताओं को मैन्युअल रूप से यह तय करने की आवश्यकता नहीं है कि रैमडिस्क में क्या होना चाहिए या नहीं: जो भी आप अक्सर उपयोग करते हैं, वह मुख्य रूप से मुख्य स्मृति में रखा जाएगा।

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

इसके अलावा, /tmp आमतौर पर लिनक्स डिस्ट्रोज़ पर रैमडिस्क होता है, क्योंकि यह ठीक है अगर वह डेटा गुम हो जाता है। अभी भी कुछ बहस है कि यह एक अच्छा विचार है, क्योंकि यदि बहुत अधिक डेटा लिखा जाता है /tmp, आप स्मृति से बाहर हो सकते हैं।


70
2017-08-27 17:06



बहुत बढ़िया जवाब। ओएस में सुपरफैच जैसी विशेषताएं भी हैं, जो बूट समय पर डिस्क से आमतौर पर डिस्क से अनुरोधित डेटा लोड करती हैं। - Matthew Lock
अच्छा उत्तर। वास्तव में इसका उत्तर देने के बजाय सभी शीर्ष पर हमला करते हैं (इसे अमान्य करने का प्रयास करें) प्रश्न - vsync


जैसा कि एलन शुक्को इस सवाल पर अपनी टिप्पणी में बताते हैं, राम वास्तव में सस्ता नहीं है।

यहां कुछ डेटा पॉइंट हैं। जब मैं 4 जीबी रैम के लिए Google पर खोज करता हूं, 64 जीबी एसएसडी और 1 टीबी एचडीडी (मैकेनिकल हार्ड ड्राइव), यहां लागतें हैं (यह 25 अगस्त, 2013 के लिए है):

वाह! एचडीडी रैम की तुलना में 100x सस्ता है! और एसएसडी रैम की तुलना में 8x सस्ता हैं।

(इसके अलावा, जैसा कि अन्य उत्तरों में बताया गया है, राम मूल रूप से अस्थिर है, और इसलिए आपको लगातार भंडारण के किसी अन्य रूप की आवश्यकता है।)


42
2017-08-27 19:54



राम एसएसडी (लेखन पहनने की समस्या के बिना) की तीव्रता के कई आदेश हैं जो कताई जंग और ग्लास की तुलना में तीव्रता के कई आदेश हैं। और सुनिश्चित करें कि आप $ 80 के लिए 1TB डिस्क द्वारा कर सकते हैं, लेकिन एससीएसआई या फाइबर चैनल कनेक्टिविटी के साथ 15k आरपीएम प्लेटर पर उस स्टोरेज को खोजने का प्रयास करें। आप 4 एक्स 250 जीबी @ ~ $ 250 और एक बीएसयू नियंत्रक (लगभग $ 500) की लागत को एसएसडी के समान लागत बनाने के लिए देख रहे हैं। - symcbean
@ सिमकबीन - यह कुछ हद तक नाइटपिकिंग है; ध्यान रखें कि बड़े संप्रदायों में रैम प्राप्त करना (जैसा कि आप डिस्क या एसएसडी को प्रतिस्थापित करने के लिए चाहते हैं) की लागत $ 25 / GB जितनी अधिक है। - Russell Borogove
@ एससीडीबीन इसी तरह की एंटरप्राइज़ विशेषताओं वाले एसएसडी को खरीदने से $ 1000 से अधिक खर्च होंगे। - mikebabcock
यह जवाब देखना बहुत दिलचस्प होगा कि इस उत्तर को हर कुछ महीनों में फिर से संशोधित किया जा रहा है और कीमत में संशोधन किया गया है, और देखें कि कीमतें लगातार कैसे गिरती हैं। - Ofer Zelig
@OferZelig "देखें कि कीमतें लगातार कैसे गिरती हैं" तुम्हारा मतलब है सिवाय जब वे नहीं करते हैं? - α CVn


मैं अपनी स्थानीय मशीन पर रैम डिस्क में सामग्री उत्पादन के लिए अपने सभी तत्काल पढ़ने / लिखने के संचालन करता हूं। मैं अपने मोंगोडीबी जर्नलिंग फ़ोल्डर्स को स्टोर करता हूं, साथ ही साथ मेरे कंपाइलर्स और पायथन दुभाषिया और मानक लाइब्रेरी भी स्टोर करता हूं। यह डिस्क शट डाउन पर सहेजी जाती है और स्टार्ट पर बहाल होती है। मैं जिस दूसरी रैम डिस्क का उपयोग करता हूं वह 64 मेगाबाइट है और मेरे सभी इंटरनेट ब्राउज़र के कैश फ़ोल्डर्स वहां इंगित करते हैं; वह बंद होने पर खो जाता है, और जब यह पूरा हो जाता है तो खुद को फ्लश करता है।

मुझे लगता है कि नौकरी के लिए सही उपकरण का उपयोग करें, मैं जवाब दूंगा। मैं अपने 7200 आरपीएम वेस्टर्न डिजिटल की तुलना में रैम डिस्क का उपयोग कर डेटा 30-1000x तेज कर रहा हूं।

यह वह प्रोग्राम है जिसका मैं उपयोग कर रहा हूं: http://www.romexsoftware.com/en-us/primo-ramdisk/

... और जब 32 गीगा राम 200 डॉलर से कम है, तो मुझे नहीं लगता कि यह और अधिक आम क्यों नहीं हो रहा है।

8 gig RAM diskeveryday SATA III HDD


8
2017-08-27 23:41



आप जानते हैं कि ओएस आपके लिए पहले से ही चीजें कैश करता है, है ना? - Potatoswatter
"जब राम के 32 गीगा $ 200 से कम है" 1 टीबी एचडीडी पर 32 जीबी लगभग 3 डॉलर से शुरू होता है, दे या ले ले; उपभोक्ता 1 टीबी ड्राइव आज 100 डॉलर से भी कम के लिए जाते हैं, और एंटरप्राइज़ ग्रेड ड्राइव भी इसी तरह के प्रति-गीगाबाइट कीमतों के लिए हो सकते हैं (अमेज़ॅन वर्तमान में 4 टीबी सीगेट एसटी 4000 एनएम 0043 के लिए $ 408 चाहता है जो 520 डॉलर का आरआरपी खेलता है, और यह भी खरीदारी के बिना एकल इकाइयां चारों ओर)। - α CVn
@Potatoswatter हाँ, यह करता है। लेकिन यह 10,000 नई बनाई गई फाइलों को कैश नहीं करता है। तो, मैं स्पष्ट रूप से उन्हें अपनी रैम डिस्क पर "कैश" करता हूं। - blakev
@ माइकल Kjörling हम रैम में 1 टीबी स्टोर करने की कोशिश नहीं कर रहे हैं। क्या बकवास है। यथार्थवादी बनें और कुछ महत्वपूर्ण फ़ोल्डरों को चुनें जो आप हमेशा रैम में रखना चाहते हैं और आप अपने वर्कफ़्लो में कुछ परिचालनों को गतिशील रूप से (परिमाण के आदेश) को गति दे सकते हैं। ऊपर मेरी छवियों को देखें। - blakev
"सब कुछ सापेक्ष है। मेरी मशीन पर, यह मेरी 8 गीग हार्ड ड्राइव छवि से "सबकुछ" लोड करता है; बाइट के लिए बाइट पूरे 8 गीगा हर बार क्लोन किया जाता है। प्रश्न के लिए, यदि आप एक समाधान की तलाश में हैं वास्तव में क्या आप "संभव" के भीतर रहेंगे या "असंभव" प्रकार के उत्तर के अनुरूप होने के अनुपात से बाहर निकलेंगे। - blakev


हां यह बाजार में आने वाले कई इन-मेमोरी डेटाबेस का आधार है। एक उदाहरण एसएपी हाना है। विचार यह है कि रैम सस्ता है और रैम पर पढ़ने / लिखने के प्रदर्शन के प्रदर्शन बिंदु से डिस्क ऑपरेशंस की तुलना में 1000x तेज है। इसलिए अधिकांश डेटा रैम में रखा जाता है और फिर आप डेटा उम्र बढ़ने की रणनीति को परिभाषित करते हैं जिसका उपयोग पुराने डेटा को ठंडे भंडारण (यानी डिस्क) में पुनर्नवीनीकरण किया जाता है।


4
2017-08-27 19:59





लघु स्पष्टीकरण:

पहली बार एक आवेदन निष्पादित किया जाता है, इसे हार्ड डिस्क या नेटवर्क से रैम में स्थानांतरित किया जाता है। तो, चिंता मत करो, आप पहले से ही यह करते हैं।

लेकिन, आमतौर पर, केवल एक ही एप्लिकेशन / प्रक्रिया फ़ाइल नहीं होती है और कुछ I / O संचालन हार्ड डिस्क या नेटवर्क (एप्लिकेशन की अन्य फाइलें या सिस्टम I के साथ अन्य I / O संचालन आदि) पर लक्षित होते हैं, जो आपके धीमे हो सकते हैं आवेदन। उनको रैम-डिस्क पर निर्देशित किया जा सकता है, लेकिन आपको यह समझना चाहिए कि रैम-डिस्क पावर-ऑफ पर हटा दी जाती है और स्टार्ट-अप पर फिर से भरनी चाहिए।

और राम इस सवाल में प्रस्तुत सस्ते नहीं है। आपको न केवल रैम की लागत की गणना करनी चाहिए, बल्कि कामकाजी रैम की लागत, जिसमें आपकी मदरबोर्ड पर सॉकेट शामिल हैं (वे सीमित / दुर्लभ हैं और इस प्रकार अधिक मूल्यवान हैं) और खोए गए डेटा की लागत, जब बिजली कम हो रही है।

उदाहरण के लिए 1TB एचडीडी वाला कंप्यूटर सस्ते के लिए खरीदा जा सकता है और यह घर कंप्यूटिंग के बारे में है, 1TB रैम वाला कंप्यूटर सुपरकंप्यूटर की श्रृंखला में है। (लेकिन इंटेल मध्य श्रेणी में कुछ काम कर रहा है: http://vr-zone.com/articles/more-on-xeon-e5-terabyte-of-ram-even-at-midrange-/14366.html)


4
2017-08-28 09:38





यह एक महान सवाल है और मुझे प्रतिक्रियाएं आकर्षक लगती हैं। मैं ओरेकल डीबीए के रूप में इस पर टिप्पणी करने जा रहा हूं और मेरे उत्तर ओरेकल डेटाबेस के लिए विशिष्ट हैं। यह एक बड़ी गलती है जो ओरेकल के साथ काम करते समय बहुत से लोग करते हैं। मुझे यकीन नहीं है कि यह अन्य अनुप्रयोगों पर भी लागू होता है। यह ऑफ-विषय होने का मतलब नहीं है, लेकिन इसका एक विशेष उत्तर के रूप में है।

जब आप ओरेकल के साथ प्रदर्शन को ट्यून करते हैं, तो आप वास्तव में बाधाओं को दूर करना चाहते हैं। हालांकि हम में से अधिकांश इसे नहीं कहते हैं, यह सीमाओं की सिद्धांत पर आधारित है: https://en.wikipedia.org/wiki/Theory_of_constraints

मेमोरी आपकी बाधा नहीं हो सकती है। ओरेकल में स्मृति प्रबंधन के लिए जटिल तंत्र हैं और केवल बढ़ती हुई स्मृति वास्तव में चीजों को धीमा कर सकती है यदि अन्य क्षेत्रों में बाधा है। मैं आपको एक उदाहरण देता हूं जो बहुत आम है।

क्वेरी धीमी लगती है। सर्वसम्मति यह है कि अगर हम रैम बढ़ाते हैं, तो हमें क्वेरी के प्रतिक्रिया समय में वृद्धि करना चाहिए क्योंकि स्मृति डिस्क से तेज है। खैर ... इस तरह ओरेकल डेटा के लिए मेमोरी प्रबंधन को संभालता है। ओरेकल में विभिन्न प्रकार के स्मृति स्थान हैं जो विशिष्ट कर्तव्यों को आवंटित किए जाते हैं। तो आप इन यादों को बढ़ा सकते हैं। डेटा के लिए उपयोग किए जाने वाले क्षेत्र को 'बफर कैश' कहा जाता है। यह लिंक्ड सूचियों की एक श्रृंखला है (उनमें से प्रत्येक संस्करण के साथ बढ़ने की संख्या है)। प्रत्येक बार एक क्वेरी के दौरान डिस्क पर एक ब्लॉक पाया जाता है, यह निर्धारित करने के लिए कि कौन सी सूची इसे चिपकाने के लिए हैश पर एश एल्गोरिदम चलाया जाता है। इसे सूची में कहां रखा जाए, टच गिनती एल्गोरिदम पर आधारित है (ओरेकल समर्थन साइट पर समझाया गया है, इसलिए आपको इसे पाने के लिए भुगतान करना होगा ... यह वास्तव में महत्वपूर्ण नहीं है)।

हालांकि, जब आप कोई क्वेरी चलाते हैं, तो ओरेकल उस समय बफर श्रृंखला पर एक लच लेता है जिसे आप उस समय खोजते हैं। यह लेट (नोट: यह लॉक नहीं है। अगर आपको अंतर नहीं पता है तो Google "लच") आपके पढ़ने की अवधि के लिए उस श्रृंखला पर अन्य सभी परिचालनों को अवरुद्ध करता है। तो यह पढ़ता है और लिखता है (यह ओरेकल से पूरी तरह से अलग है दावा करने वाले ताले पढ़ने को अवरुद्ध नहीं करते हैं)।

यह जरूरी है क्योंकि जब आप श्रृंखला में ब्लॉक पढ़ते हैं, तो ओरेकल इसे 'अनुरोध' के आधार पर चारों ओर ले जाता है। अधिक बार अनुरोध किए गए ब्लॉक शीर्ष पर ले जाया जाता है और कम से कम अनुरोधित ब्लॉक नीचे और वृद्ध हो जाते हैं। आपके पास एक लिंक की गई सूची पढ़ने और चारों ओर घूमने वाले ब्लॉक पढ़ने के 2 सत्र नहीं हो सकते हैं या आप पॉइंटर्स को हिट करेंगे जो मौजूद नहीं हैं।

जब आप स्मृति के आकार को बढ़ाते हैं, तो आप प्रत्येक लिंक्ड सूची का आकार बढ़ाते हैं। इससे सूची पढ़ने में लगने वाला समय बढ़ जाता है। एक भी खराब क्वेरी या जटिल क्वेरी हजारों या यहां तक ​​कि लाखों लिंक लिंक्ड सूचियों को पढ़ सकती है। प्रत्येक पढ़ना तेज़ होता है, लेकिन उनमें से संख्या लंच ले जाती है और ये अन्य सत्रों को अवरुद्ध कर देगी। ओरेकल इसे 'लॉजिकल आईओ' (या बफर मिल या कुछ अन्य सामान कहते हैं। यह लिंगो ओरेकल के लिए विशिष्ट है और इसका मतलब आईटी के अन्य हिस्सों में कुछ और हो सकता है)।

इसलिए, यदि सूची लंबी है और आपके पास वास्तव में खराब SQL है, तो SQL कथन उनके लंच को लंबे समय तक पकड़ेंगे। बढ़ती स्मृति कभी-कभी प्रदर्शन को कम कर सकती है। ज्यादातर समय, ऐसा नहीं होगा। लोग बहुत पैसा खर्च करेंगे और कोई फायदा नहीं देखेंगे। ऐसा कहा जा रहा है कि ऐसे समय होते हैं जब आपको बफर कैश में अधिक मेमोरी की आवश्यकता होती है, लेकिन आपको यह जानने के लिए बाधा की सही ढंग से पहचान करनी होगी कि यह उचित है या नहीं। मैं चर्चा नहीं कर सकता कि इस पोस्ट में इसका विश्लेषण कैसे करें। डीबीए मंच देखें। कुछ लोग वहां चर्चा करते हैं। यह बल्कि जटिल है।

क्या किसी के पास सॉफ़्टवेयर के अन्य टुकड़ों के साथ विशिष्ट उदाहरण हैं जहां यह हो सकता है? 'द गोल' नामक एक भयानक व्यवसाय पुस्तक है जो फैक्ट्री में बाधाओं को कम करने पर चर्चा करती है। प्रदर्शन प्रक्रिया का आकलन करते समय यह प्रक्रिया ओरेकल डीबीए के समान ही होती है। एमबीए कार्यक्रमों में यह अक्सर मानक पढ़ना होता है। आईटी व्यवसायों के लिए पढ़ना बहुत मूल्यवान है।

https://en.wikipedia.org/wiki/Eliyahu_M._Goldratt


4
2017-08-28 16:06



यह शर्मिंदा नहीं है कि यह सवाल के लिए खुलासा है, लेकिन अन्यथा दिलचस्प है। - jb.
सिर्फ राम जोड़ने के लिए इसका एक कारण नहीं है। यह विशिष्ट, और संकीर्ण है, लेकिन मुझे लगता है कि यह लागू होता है। - Bob
बहुत ही रोचक। यह समग्र चर्चा के लिए एक और कोण लाता है। - Lorenz Lo Sauer


रैम सस्ता हो सकता है लेकिन पारंपरिक भंडारण के रूप में सस्ता नहीं है।

मेरे पास 3TB हार्ड ड्राइव है ($ 99): एचडीडी उद्धरण

और आपको इनमें से 48 में 3TB ($ 719) प्रत्येक की आवश्यकता होगी: राम उद्धरण

यह $ 34,512 बनाम $ 99 होगा। 3TB रैम चलाने के लिए आवश्यक हार्डवेयर की कीमत का उल्लेख नहीं करना है।


3
2017-08-28 00:17



जवाब प्रश्न के लिए प्रासंगिक नहीं है - BlueBerry - Vignesh4303
मुझे लगता है कि अंत में वह कहने की कोशिश कर रहा है "राम सस्ता नहीं है।" - jaczjill
इसके अलावा आप उन 8 चैनल किटों में से 48 को किसी भी डिवाइस में कनेक्ट नहीं कर सकते हैं जो मुझे पता है। यद्यपि ऐसे सिस्टम हैं जो एक सर्वर में 16 (या अधिक) 64 जीबी आरईजी ईसीसी dimms स्वीकार करते हैं। हालांकि ये बिल्कुल सस्ते नहीं हैं। - drescherjm


यह वास्तव में कुछ परिदृश्यों में किया जाता है। यदि आपके पास एक ऑपरेटिंग सिस्टम / ऐप पर्याप्त छोटा है, तो आप इसे पूरी तरह से रैम में चला सकते हैं। बेशक इसमें सभी नुकसान हैं जो स्वीकार किए गए उत्तर में हैं। लेकिन यह संभव है और होता है।

एक लोकप्रिय लिनक्स वितरण, पिप्पी लिनक्स पर एक नज़र डालें। रैम से चलने के बारे में पेज वार्ता कैसे काम करती है: http://puppylinux.org/wikka/howPuppyWorks 


2
2017-08-28 14:07



और निश्चित रूप से, क्लस्टर पर्यावरण में, आप ऐप को एक वितरित / नेटवर्क फाइल सिस्टम पर रख सकते हैं, पीएक्सई या इसी तरह के आधार ओएस की सेवा कर सकते हैं, और अगर आप चाहें तो नोड्स डिस्कलेस चला सकते हैं। - Aesin