मुझे नहीं लगता कि यह अभी तक मुझे स्पष्ट है, क्या यह फ़ाइल से या मेमकैड से चीजों को पढ़ने के लिए तेज़ है? क्यूं कर?कैशिंग, फाइल सिस्टम या मेमकैच के लिए कौन सा तेज़/बेहतर है?
उत्तर
मेमकैड तेज़ है, लेकिन स्मृति सीमित है। एचडीडी बहुत बड़ा है, लेकिन स्मृति की तुलना में I/O धीमा है। आपको मेमकैच, और सभी अन्यपर फ़ाइलों को कैश करने के लिए पर जा सकते हैं।
(या आदमी ऊपर और अधिक स्मृति में की तरह these guys :)
कुछ मानक के लिए कुछ पैसे निवेश देखें: Cache Performance Comparison (File, Memcached, Query Cache, APC)
सिद्धांत रूप में:
Read 1 MB sequentially from memory 250,000 ns
Disk seek 10,000,000 ns
http://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdf
आपके द्वारा लिंक किए गए बेंचमार्क आपके कथन के सटीक विपरीत दिखाते हैं - कि स्थानीय डिस्क से पढ़ने से Memcached धीमा है। क्या आप विसंगतियों को स्पष्ट कर सकते हैं? – DOOManiac
आप विवरण पर भयानक तरीके से झुका रहे हैं। और मेरा मानना है कि आपकी तलाश का उत्तर बैठने पर निर्भर करता है। मेरे ज्ञान के लिए बहुत कम चीजें हर समय की तुलना में बेहतर होती हैं।
स्पष्ट रूप से यह फ़ाइल सिस्टम की चीजों को पढ़ने के लिए तेज़ नहीं होगा (यह मानते हुए कि यह एक हार्डड्राइव है)। यहां तक कि एक एसडीडी भी मेमोरी रीड की तुलना में धीमी गति से धीमा होगा। और इसका कारण यह है कि एचडीडी/फाइलसिस्टम क्षमता की गति के लिए बनाया गया है, जबकि उस कारण से डीडीआर मेमोरी कण जल्दी है।
अच्छा कैशिंग का मतलब स्मृति में अक्सर एक्सेस किए गए हिस्सों को रखने और डिस्क (लगातार भंडारण) पर अक्सर उपयोग की जाने वाली चीज़ों को रखने के लिए नहीं है। इस तरह सामान्य मामले आपके कैशिंग कार्यान्वयन द्वारा काफी सुधार किया जाएगा। यह आपका लक्ष्य है। सुनिश्चित करें कि आपको अपनी आदर्श कैशिंग नीति की अच्छी समझ है। इसके लिए व्यापक बेंचमार्किंग और परीक्षण की आवश्यकता होगी।
हैं काफी कुछ अलग-अलग पहलू जो एक या दूसरे का पक्ष ले सकते हैं:
- क्या आपको इस डेटा को एकाधिक सर्वरों के बीच साझा करना/चाहते हैं? फाइल सिस्टम स्थानीय है, नेटवर्क पर memcached का उपयोग किया जाता है।
- आपके कैशिंग आइटम कितने बड़े हैं? बड़े सिस्टम के लिए फाइल सिस्टम बेहतर होने की संभावना है।
- प्रति पेज कितने memcached अनुरोध हो सकता है? टीसीपी कनेक्शन और आंसू-डाउन स्थानीय मशीन पर एक साधारण फाइल सिस्टम स्टेट() से अधिक समय ले सकते हैं।
मैं सुझाव दूंगा कि आप अपने उपयोग के मामले को देखें और दोनों दृष्टिकोणों की कुछ प्रोफाइलिंग करें। यदि आप फाइल सिस्टम का उपयोग कर दूर हो सकते हैं तो मैं करूँगा। Memcached में जोड़ना जटिलता की एक और परत और विफलता के संभावित बिंदु (memcached क्लाइंट/सर्वर) में जोड़ता है।
डिस्क बनाम मेमोरी प्रदर्शन के बारे में अन्य टिप्पणियों के लायक होने के लिए यह अकादमिक हो सकता है जैसे फाइल सिस्टम डेटा नियमित रूप से एक्सेस किया जा रहा है, तो यह संभवतः ओएस या डिस्क कैश मेमोरी में बैठा होगा।
यह निर्भर करता है कि कैश स्थानीय रूप से संग्रहीत है या नहीं। Memcache एक नेटवर्क में डेटा स्टोर कर सकते हैं, जो एक स्थानीय डिस्क से जरूरी नहीं है।
वास्तव में, यह उतना आसान नहीं है जितना स्मृति से पढ़ना एचडीडी से पढ़ने से कहीं अधिक तेज़ है।जैसा कि आप जानते हैं, मेमकैच टीसीपी कनेक्शन पर आधारित है, यदि आप हर बार कनेक्शन बनाते हैं तो आप एसएचएच प्राप्त करना चाहते हैं या एसएचएच को मेमकैड सर्वर (जो प्रोग्रामर का अधिकांश है) पर सेट करते हैं, तो यह फ़ाइल कैश का उपयोग करने से खराब प्रदर्शन करता है। आपको स्थैतिक Memcached ऑब्जेक्ट का उपयोग करना चाहिए, और ऑब्जेक्ट का पुन: उपयोग करना चाहिए। दूसरा, आधुनिक ओएस की फ़ाइलों को कैश किया जाएगा जो अक्सर उपयोग किए जाते हैं, जो कि फ़ाइल कैश मेमकैच से तेज़ी से हो सकता है जो वास्तव में टीसीपी कनेक्शन हैं।
"तेज" संदर्भ के बिना उपयोग नहीं किया जा सकता है। उदाहरण के लिए, दूरस्थ सर्वर पर memcached में डेटा तक पहुंच नेटवर्क विलंबता के कारण "धीमी" हो सकती है। दूसरी तरफ, 10 जीबी नेटवर्क के माध्यम से रिमोट सर्वर मेमोरी से डेटा पढ़ने से स्थानीय डिस्क से उसी डेटा को पढ़ने से "तेज़" हो सकता है।
फाइल सिस्टम पर कैशिंग के बीच मुख्य अंतर और memcached का उपयोग करना यह है कि memcached एक पूर्ण कैशिंग समाधान है। तो एलआरयू सूचियां, समाप्ति अवधारणा (डेटा ताजगी), कुछ उच्च स्तरीय संचालन, जैसे कैस/इंक/डीसी/एपेंड/प्रीपेन्ड/प्रतिस्थापन है।
मेमकैड को तैनात करना और निगरानी करना आसान है (हम फाइल सिस्टम पर "कैश" वर्कलोड को कैसे अलग कर सकते हैं, चलिए कर्नेल कहते हैं? क्या हम कैश किए गए डेटा की कुल मात्रा की गणना कर सकते हैं? डेटा वितरण? क्षमता नियोजन? और इसी तरह)।
भी cachelot जैसे कुछ संकर प्रणाली, कर रहे हैं असल में, यह memcached कि सही आवेदन में एम्बेड किया जा सकता है, तो कैश किसी भी syscalls या नेटवर्क आईओ के बिना सुलभ हो जाएगा।
- 1. कौन सी Django कैशिंग सिस्टम तेज है: फाइल सिस्टम या डीबी?
- 2. मेमकैच बनाम एज़ूर कैशिंग
- 3. डेटाबेस या फाइल सिस्टम एक्सेस के लिए कॉन्स अर्थशास्त्र
- 4. फाइल सिस्टम सिस्टम का कौन सा फ़िल्टर मुझे नई फाइलें खोजने के लिए उपयोग करने की आवश्यकता है
- 5. कौन सा बेहतर है, नागियोस या सेंसू?
- 6. कौन सा ऑपरेटिंग सिस्टम सामान्य रूप से PHP विकास या विकास के लिए सबसे अच्छा है?
- 7. विंडोज के लिए कौन सा बेहतर है? pthreads या CreateMutex?
- 8. numpy.max या अधिकतम? कौन सा तेज़ है?
- 9. कौन सा बेहतर है? OpenCyc या ConceptNet?
- 10. कौन सा बेहतर है - PyInstaller या cx_Freeze?
- 11. कौन सा कुशल है, itoa या sprintf?
- 12. कौन सा तेज़ है? तुलना या असाइनमेंट?
- 13. पहचानकर्ता या चर: कौन सा है?
- 14. कौन सा बेहतर है, ईटीएल या ईएलटी?
- 15. कौन सा बेहतर BOOST_MPL_ASSERT या BOOST_STATIC_ASSERT है?
- 16. सी #: फाइल सिस्टम सिस्टम
- 17. मेमकैच, रेडिस, या कॉचबेस
- 18. कौन सा लूप तेज है, जबकि या इसके लिए?
- 19. कौन सा बेहतर है?
- 20. फाइल सिस्टम
- 21. उबंटू सिस्टम पथ सेट कौन सी फाइल में है?
- 22. कौन सा खोल एक पर्ल सिस्टम() कॉल उपयोग करता है?
- 23. फाइल सिस्टम
- 24. कौन सा उपयोग करने के लिए: REMOTE_ADDR या SERVER_ADDR
- 25. कौन सा चयन करने के लिए? डीएक्सकोर, रिशेर्पर या वीएसएक्स?
- 26. फाइल सिस्टम FindFirstFileEx के लिए समर्थन, निर्देशिका
- 27. एएसपी.नेट और इकाई ढांचे के लिए मेमकैच बनाम रेडिस?
- 28. फाइल सिस्टम
- 29. फाइल सिस्टम
- 30. एंड्रॉइड - शब्दकोश फ़ाइल। कौन सा तेज़, डेटाबेस या रीडिंग फाइल सीधे है?
आपको अधिक विशिष्ट होना होगा, आप डेटा सेट क्या हैं और पेटीटेन्स तक पहुंच सकते हैं, क्या यह एक स्थानीय memchaced सर्वर या distibuted है? नेटवर्क पहुंच लागत क्या है? आपके द्वारा संग्रहीत जानकारी कितनी बड़ी है? आप किस डिस्क पर चल रहे हैं? –
इस तरह के प्रश्न http://superuser.com/ –
के लिए बेहतर उपयुक्त हैं, मुझे विवरण के बारे में बहुत कुछ पता नहीं है, मुझे मूलभूत शब्दों में लगता है: सरल सेटअप, सरल ऐप, 1 मेमकेचे सर्वर, 100 फाइलें ... –