एक आधुनिक प्रणाली पर, डिस्क संपीड़न का उपयोग करने से मुझे बेहतर समग्र प्रदर्शन मिलेगा?


10

ऐसा लगता है कि सीपीयू बढ़ने से डिस्क की गति थोड़ी देर के लिए बढ़ गई है। आधुनिक दोहरे कोर इंटेल / एएमडी सीपीयू और एक एकल औसत एसएटीए डिस्क के साथ एक डेस्कटॉप या लैपटॉप को मानते हुए, डिस्क के अधिकांश पर संपीड़न बेहतर प्रदर्शन करेंगे? मूल रूप से कम डिस्क बैंडविड्थ में वृद्धि हुई सीपीयू लोड की तुलना में अधिक है? मुझे यकीन है कि असली जवाब "यह निर्भर करता है कि आप क्या कर रहे हैं"। यह सवाल पूछकर, मैं किसी ऐसे व्यक्ति से उम्मीद कर रहा हूं जिसने इस पाइप को ऊपर किया है और कुछ उदाहरण या नुकसान दिए हैं।


प्रदर्शन को परिभाषित करें? गति में वृद्धि या अंतरिक्ष में वृद्धि के रूप में? आप शायद किसी भी गति वृद्धि को नोटिस नहीं करेंगे, लेकिन निश्चित रूप से अतिरिक्त बाइट्स को उपयोगी पाएंगे! :-p
क्रिस्टोफर लाइटफुट

जवाबों:


9

हाँ, डिस्क संपीड़न विशेष परिस्थितियों में बेहतर प्रदर्शन प्रदान कर सकता है:

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

ZFS और Btrfs दोनों हाल ही में ग्रीन-फील्ड डिज़ाइन दोनों का एक कारण है, इसमें संपीड़न के प्रावधान शामिल हैं।

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


मीडिया स्ट्रीमिंग डिस्क संभवतः एकमात्र स्थान है जहां लाभ होता है क्योंकि चंक का आकार काफी बड़ा होता है। मानक ओएस डिस्क * हमेशा एक हिट ले जाएगा।
रयान सेप

5
मीडिया स्ट्रीमिंग स्टोरेज-सिस्टम स्तर संपीड़न के लिए एक सम्मोहक अनुप्रयोग नहीं है। डेटा को पहले से ही बेहतर अनुप्रयोग-विशिष्ट प्रारूप में संकुचित किया जाना चाहिए।
फिल मिलर

5

डिस्क संपीड़न कभी भी आपको बेहतर प्रदर्शन नहीं देगा।

यह आपको तेज आधुनिक सीपीयू के कारण लगभग कोई जुर्माना नहीं दे सकता है , लेकिन यह पूरी तरह से अलग चीज है।

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

कुछ परिदृश्य:

  • मीडिया फ़ाइलें। वे आम तौर पर पहले से ही अपने (जेपीईजी, एमपीईजी, एमपी 3) पर संपीड़ित होते हैं, इसलिए उन्हें फाइल सिस्टम स्तर पर संपीड़ित करना बिल्कुल भी मदद करने वाला नहीं है; यह बदले में चीजों को खराब करेगा, क्योंकि सीपीयू संसाधनों को पहले से ही उन्हें एनकोड / डिकोड करने की आवश्यकता है।
  • डेटाबेस। जिन्हें आमतौर पर छोटे यादृच्छिक फटनों में लिखा जाता है / लिखा जाता है, इसलिए उन्हें संपीड़ित करने से न केवल लाभ होगा, बल्कि प्रदर्शन में भी कमी आएगी, क्योंकि DBMS ठीक से पहचान नहीं कर सकता है कि डिस्क पर भौतिक डेटा का उपयोग करने की आवश्यकता कहां है। संग्रहीत।
  • पृष्ठ की फाइल। यह आमतौर पर काफी बड़ा होता है, लेकिन ओएस को इस पर डेटा के बहुत छोटे हिस्से को संबोधित करने की आवश्यकता होती है, और इसे बहुत सटीक रूप से करने की आवश्यकता होती है ("भौतिक पते एक्स पर 4K पढ़ें"); इसे संपीड़ित करना आमतौर पर संभव नहीं है, लेकिन फिर भी, यह समय और संसाधनों की पूरी बर्बादी होगी: यह इस फ़ाइल के "पूर्ण यादृच्छिक डेटा" प्रकृति के कारण लगभग शून्य संपीड़न प्रदान करेगा।

1
तो डिस्क से कम डेटा स्थानांतरित करने से कोई लाभ नहीं मिलता है?
23

जवाब देने के लिए संपादित किया गया कि :-)
मासिमो

3
कभी भी बहुत संकीर्ण सोच वाला शब्द नहीं है। डिस्क से और pci बस के माध्यम से कच्चे बैंडविड्थ अक्सर मेरे द्वारा किए जाने वाले कुछ कार्यों के साथ अड़चन है। संपीड़न प्रदर्शन में बहुत मदद कर सकता है, खासकर अगर आपने पहले से ही कुछ अन्य अड़चनों को दूर करने के लिए उपाय किए हैं
जेम्सरन

1
मुझे "कभी नहीं" कहने में भी संकोच होगा। अच्छी तरह से ऐसे परिदृश्य हो सकते हैं जहां डिस्क बैंडविड्थ अड़चन है। लेकिन आप शायद सही हैं कि यह विशिष्ट मामला नहीं है।
9

2
डिस्क i / o लगभग हमेशा डेटाबेस में एक अड़चन है
निक कवडियास

3

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

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


3

आपने अपने प्रश्न का उत्तर खुद ही दे दिया! यह निर्भर करता है वास्तव में जवाब है।

सबसे अच्छा सामान्यीकरण मैं कर सकता हूँ:

यदि आपके पास एक डेटाबेस एप्लिकेशन है जो डिस्क रीड की कमी है , तो हाँ! प्रदर्शन बेहतर है।

मुझे नहीं लगता कि यह अधिकांश गतिविधियों के लिए है जो आप डेस्कटॉप / लैपटॉप पर कर रहे हैं।

मेरे डोमेन (SQL सर्वर) में मुझे पता है कि भारी रीड लोड के तहत रिपोर्टिंग डेटाबेस बेहतर संपीड़न प्राप्त कर सकते हैं यदि संपीड़न का उपयोग किया जाता है। मुझे पता है कि mysql के लिए भी यही सच है।

Microsoft SQL Server 2008 में अपनी संपीड़न सुविधाओं पर एक श्वेत पत्र है। जब तक आपका DBA नहीं होता है, तब तक यह बिल्कुल हल्का नहीं होता है, लेकिन यहां एक चार्ट है जो मेरे सामान्यीकरण का समर्थन करता है:

वैकल्पिक शब्द


0

सीपीयू की गति हमेशा डिस्क की गति से तेज होती है। IMHO, संपीड़न ओवरहेड को बढ़ाने जा रहा है और जिससे प्रदर्शन में कमी आई है।


लेकिन यह इस बात पर निर्भर करता है कि आप क्या कर रहे हैं :-)
जोश

ऐसा कैसे? एक बढ़ा हुआ ओवरहेड एक बढ़ा हुआ ओवरहेड है। आप पैसे खर्च करके पैसे नहीं खरीद सकते (जब तक कि यह नकली पैसा नहीं है, लेकिन यह एक और कहानी है)।
मार्क हेंडरसन

कंप्रेशन और डिकम्प्रेसिंग फ़ाइलों का कार्य, चाहे वे संपीड़न के कारण छोटे हों या न हों, प्रदर्शन ओवरहेड को शुरू करने वाला है। जब फ़ाइल को डिस्क से मेमोरी में पढ़ा जाता है तो उसे विघटित होना पड़ता है। जब इसे मेमोरी से डिस्क पर लिखा जाता है तो इसे कंप्रेस करना पड़ता है।
जोकेवेटी

3
लेकिन अगर आपका सीपीयू कुछ भी नहीं कर रहा है और आप डिस्क बैंडविड्थ की अड़चन है, तो आपका सीपीयू अधिक काम करना समाप्त कर देगा लेकिन समग्र प्रदर्शन में वृद्धि होगी। यह वास्तव में इस बात पर निर्भर करता है कि आप किस प्रकार के डेटा को पुनः प्राप्त कर रहे हैं और आप इसके साथ क्या कर रहे हैं।
जेम्सरन

0

मैं OSX के बारे में कल इसी तरह से पढ़ रहा था और यह फाइलसिस्टम का संपीड़न है - मूल रूप से इसका उत्तर यह है कि आप जो संक्षिप्त करना चाहते हैं, उसके चारों ओर घूमता है - इस उदाहरण में वह "एफएटी" डेटा के बारे में बात कर रहा है; फ़ाइल संरचनाएँ, गुण, मेटाडेटा आदि कि जब एक साथ संग्रहीत किया जा सकता है तो अंतरिक्ष को बचाने के लिए संपीड़ित किया जा सकता है और प्रत्येक फ़ाइल के डेटा को खोजने के लिए सभी जगह सिर मांगने की तुलना में तेजी से सीपीयू में पढ़ा जा सकता है ...

वैसे भी, एक पढ़ने लायक अगर आप ऐसी चीजों के बारे में सोच रहे हैं :-p

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

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

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

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

HFS + वॉल्यूम प्रारूप फ़ाइलों के बारे में अपनी सभी जानकारी संग्रहीत करता है - मेटाडेटा - डिस्क पर दो प्राथमिक स्थानों में: कैटलॉग फ़ाइल, जो फ़ाइल दिनांक, अनुमतियाँ, स्वामित्व और अन्य चीज़ों के एक होस्ट को संग्रहीत करता है, और गुण फ़ाइल, जो स्टोर करता है "नामित toks । "

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

जैसा कि आप कल्पना कर सकते हैं, कैटलॉग और एट्रीब्यूट्स फ़ाइलों को बनाने वाले डिस्क ब्लॉक अक्सर एक्सेस किए जाते हैं, और इसलिए कहीं-कहीं कैश में सबसे अधिक होने की संभावना है। यह सभी बी-ट्री-संरचित कैटलॉग के भीतर अपने डेटा में मेटाडेटा दोनों सहित एक फ़ाइल का पूरा भंडारण करने की साजिश करता है और एक समग्र प्रदर्शन जीत के लिए फाइलों को शामिल करता है। यहां तक ​​कि एक आठ-बाइट पेलोड जो 25 बाइट के लिए गुब्बारे के लिए एक चिंता का विषय नहीं है, जब तक कि यह अभी भी सामान्य डेटा भंडारण के लिए आवंटन ब्लॉक आकार से कम नहीं है, और जब तक यह सभी विशेषताओं में बी-ट्री नोड के भीतर फिट बैठता है फ़ाइल OS को वैसे भी पूरी तरह से पढ़ना होगा।

स्नो लेपर्ड की कम हुई डिस्क पदचिह्न (उदाहरण के लिए, अनावश्यक स्थानीयकरणों को हटाने और "designable.nib" फ़ाइलों) में अन्य महत्वपूर्ण योगदान हैं, लेकिन HFS + संपीड़न अब तक का सबसे तकनीकी रूप से दिलचस्प है।

प्रेषक: http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars/3


मैंने पहले इस बारे में सोचा है, लेकिन उस सटीक लेख ने मुझे इस प्रश्न को पोस्ट करने के लिए प्रेरित किया।
kbyrd

जबरदस्त हंसी। रुचिकर :
क्रिस्टोफर लाइटफुट

0

Microsoft डिस्क संपीड़न बदसूरत OLD है। यह शायद ही 80 के दशक से एआरजे विधि के साथ अनुपात में तुलनीय है। लेकिन, यहां तक ​​कि माइक्रोसॉफ्ट के संपीड़न बहुत धीमी (लैपटॉप) हार्ड ड्राइव पर बेहतर प्रदर्शन प्रदान कर सकते हैं। खासकर अगर राइट-कैशिंग के लिए पर्याप्त रैम है और अत्यधिक लेखन को रोकना है।

लेखन प्रक्रिया किसी भी यादृच्छिक-पहुँच सक्षम संपीड़न विधि का एक कमजोर स्थान है।

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

रैम-ड्राइव के लिए डिस्क संपीड़न भी बहुत उपयुक्त है, आपको यह बताने की आवश्यकता नहीं है कि क्यों।


1
क्या आप कुछ सहायक डेटा जोड़ सकते हैं, शायद विंडोज और लिनक्स आधारित समाधानों के बीच प्रदर्शन तुलना?
भजन

हाँ, यदि आप एक 3.5 वर्ष पुराने धागे को बांधने जा रहे हैं, तो आप बेहतर कुछ नए, कठिन तथ्य लाएंगे।
एमडीएमरा

-1

Doubtfully। संपीड़न और अपघटन में केवल डिस्क और सीपीयू से अधिक शामिल है; विशेष रूप से स्मृति से (संपीड़न के बिना मानक हस्तांतरण उपरि के अलावा) डेटा का बहुत अधिक हस्तांतरण होगा, जो वास्तव में पृष्ठ दोष के संदर्भ में चोट पहुंचाएगा।


-1

संक्षेप में, नहीं, आप शायद प्रदर्शन में लाभ नहीं लेंगे।

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

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