संकलित और बाइनरी लिनक्स वितरण / पैकेज के बीच प्रदर्शन अंतर


14

मैं इंटरनेट पर बहुत कुछ खोज रहा था और एक सटीक उत्तर नहीं पा रहा था।

Gentoo (या FreeBSD) जैसे विकृत हैं जो बायनेरिज़ के साथ नहीं आते हैं, लेकिन केवल पैकेज (पोर्ट) के लिए स्रोत कोड के साथ हैं।

अधिकांश डिस्ट्रोस द्विआधारी बैकैज (डेबियन, आदि) का उपयोग करते हैं।

पहला सवाल: संकलित पैकेज से मैं कितनी गति बढ़ा सकता हूं? मैं अपाचे या mysql जैसे वास्तविक दुनिया के पैकेज से कितनी गति बढ़ा सकता हूं? प्रति सेकंड प्रश्न?

दूसरा सवाल: क्या बाइनरी पैकेज का मतलब है कि यह किसी भी सीपीयू निर्देशों का उपयोग नहीं करता है जो पहले एएमडी 64 बिट सीपीयू के बाद पेश किया गया था? 32 बिट पैकेज के साथ इसका मतलब यह है कि पैकेज 386 पर चलेगा और मूल रूप से अधिकांश आधुनिक सीपीयू निर्देशों का उपयोग नहीं करता है?

अतिरिक्त जानकारी:

  • मैं डेस्कटॉप के बारे में बात नहीं कर रहा हूं, लेकिन सर्वर वातावरण।
  • मैं संकलन समय के बारे में परवाह नहीं है
  • मेरे पास अधिक सर्वर हैं, इसलिए स्रोत कोड पैकेजों का उपयोग करने के लिए 15% से अधिक की गति बढ़ जाती है
  • कृपया कोई फ़्लैमर न दें।

1
बस एक गलत धारणा को ठीक करने के लिए: FreeBSD एक पोर्ट ट्री (स्रोत) और बाइनरी पैकेज दोनों के साथ आता है। देखें man (1) pkg_addऔर ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages/
हेन्नेस

जवाबों:


7

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

  • अपने स्वयं के कस्टम पैच नियुक्त करना
  • अपने कर्नेल को आसानी से अनुकूलित करना
  • अपने खुद के अद्यतन पैकेजिंग

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

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

आप मूल रूप से स्रोत से संकलन करके 15% की गति वृद्धि नहीं देखेंगे। मैं किसी भी उचित मामले में 5% के रूप में भी उच्च पर यह अनुमान लगाने के लिए घृणा कर रहा हूँ। स्रोत से संकलन करने से आपको कुछ चीजें मिल जाती हैं:

  • आपको अपने पसंदीदा संकलक संस्करण का उपयोग करने के लिए मिलता है
  • आप बायनेरी डिस्ट्रीब्यूशन पैकेज, जैसे एईएसएनआई और एवीएक्स में उपयोग नहीं किए गए आईएसए एक्सटेंशन से निर्देश उत्पन्न करने के लिए कंपाइलर को निर्देशित कर सकते हैं

हालाँकि, कंपाइलर बहुत कम ही वास्तव में इनको उत्पन्न करता है, और जब अनुप्रयोग के प्रदर्शन को समग्र रूप से लिया जाता है, तो उनका उपयोग करने से होने वाली कुल बचत आमतौर पर बहुत कम होती है। रैम एक्सेस (और विलंबता) और डिस्क और डिवाइस विलंबता जैसी चीजें बहुत बड़े कारक हैं, और आपको वास्तव में वहां शुरू करना चाहिए।

वे अनुप्रयोग जो एक कस्टम संकलन से लाभान्वित हो सकते हैं जो केवल अपेक्षाकृत हाल के इंटेल कोर i7 या i5 पर चलेंगे उनमें वे वेक्टर गणित शामिल हैं जो बहुत सारे एईएस एन्क्रिप्शन और डिक्रिप्शन करते हैं, या बहुत सारे यादृच्छिक संख्याओं की आवश्यकता होती है। यदि आप इंटेल DRBG का उपयोग करना चाहते हैं तो आपको वर्तमान में भी ऐसा करने की आवश्यकता होगी।

यदि इनमें से कोई भी आप पर लागू नहीं होता है, तो आप किसी भी डेबियन या रेड हैट आधारित वितरण से काफी खुश होंगे, और बहुत कम रखरखाव ओवरहेड होगा।


9

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

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

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

यदि आप एक ऐसे बिंदु पर हैं जहां लोकप्रिय एप्लिकेशन स्टैक (LAMP) की दक्षता एक समस्या है, तो कृपया अपने सर्वर हार्डवेयर (CPU प्रकार, RAM लेआउट), नेटवर्किंग अवसंरचना, निगरानी प्रणाली और सिस्टम की अड़चनों को पहचानने में सक्षम होना सुनिश्चित करें इस रास्ते से नीचे जा रहे हैं।

अब आप एक प्रदर्शन सीमा मार रहे हैं ?


5

किए गए सभी बिंदु निश्चित रूप से सही हैं। मैं सिर्फ इस मुद्दे पर कुछ विचार करना चाहता हूं कि 5% -15% प्रदर्शन वृद्धि अस्वीकार्य है, विशेष रूप से जीसीसी के आधुनिक संस्करणों के साथ, यह वास्तव में सीपीयू वास्तुकला पर निर्भर करता है और लक्ष्य के रूप में उपयोग की जाने वाली बेस-लाइन के कितने करीब है बाइनरी वितरण के लिए। GCCs -march = देशी इच्छा, ISA एक्सटेंशन का उपयोग करने के अलावा L1 और L2 कैश / लाइन आकार के लिए भी ऑप्टिमाइज़ करते हैं। सही तरीके से संरेखित कोड (आपके सीपीयू के लिए) विशेष रूप से तब और तेज हो सकता है जब -flto का भी उपयोग किया जाता है, इसलिए संकलक को वह सब कुछ पता चल सकता है जिसे उसे ध्यान में रखना चाहिए। [कुछ पैकेज वर्तमान में LTO के साथ टूट गए हैं, दुर्भाग्य से]

इसके अतिरिक्त, चुनिंदा संकुल को -OIFT के साथ संकलित करने के अलावा, मार्च = देशी और LTO के अलावा एक महत्वपूर्ण अंतर हो सकता है।

भविष्य में, अगर जीसीसी ग्रेफाइट इन्फ्रास्ट्रक्चर कभी स्थिर हो जाता है, तो इससे भी अधिक लाभ की संभावना होगी।


इस उत्तर के समर्थन में उपाख्यान: कुछ बेंचमार्क जिसे मैंने काहिरा और पिक्समैन के साथ चलाया, -march=nativeएक स्काईलेक (क्लाइंट) सीपीयू के साथ बाइनरी वितरण की तुलना में 5 से 20% तेज था। (वे पैकेज शायद ऑटो-वेक्टराइज़ करने वाले कंपाइलरों के लिए अपेक्षाकृत आसान हैं।) -fno-semantic-interpositionजैसा कि है, कोशिश करने के लिए एक और अच्छा झंडा है -falign-functions
ZachB

4

यह इस बात पर निर्भर करता है कि आप अपने सिस्टम में क्या चाहते हैं, और वास्तव में यहां पर विचार के तीन स्कूल हैं (और यह हार्डवेयर और सॉफ्टवेयर दोनों के लिए सच है)

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

दूसरा 'बीच का रास्ता' बिंदु है, जो बीच का मैदान है - उबंटू जैसी चीज के साथ जा रहा है। आप नए पैकेज चाहते हैं (बिलकुल रॉक सॉलिड स्टेबिलिटी के मामूली खर्च पर), आप एक इंस्टॉलर और अच्छी चीजें चाहते हैं

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

अंत में वहाँ स्रोत आधारित वितरण है। ज्यादातर मामलों में प्रारंभिक सेटअप रियर में एक पूरी तरह से दर्द है। आप अपना कर्नेल सेट करने में कोई गलती करते हैं? ओह, कुछ घंटे बिताते हैं। आपको n00bs के लिए या तो इंस्टॉलर नहीं मिलता है। आपको अक्सर ब्लीडिंग एज एप्लिकेशन और उन्हें संकलन करने का विकल्प मिलता है, जैसे आपको उनकी आवश्यकता होती है (जिसमें गति या स्मृति उपयोग के लिए अनुकूलन लेने में सक्षम होना शामिल है), और एक रोलिंग रिलीज। यदि आपके पास बहुत विशिष्ट, गूढ़ आवश्यकताएं हैं, तो जेंटू का कमाल है। यदि आपको कुछ दर्जन प्रणालियों को रोल आउट करने की आवश्यकता है और इसे स्वचालित करना चाहते हैं ... सौभाग्य। स्रोत आधारित वितरण बस के रूप में अच्छी तरह से पैमाने पर नहीं है। आपको बहुत अधिक लचीलापन मिल रहा है, * कुछ ** अतिरिक्त गति, लेकिन पैकेज आधारित वितरण IMO के समान स्तर पर स्थिरता नहीं। तुम नहीं हो15% अतिरिक्त गति प्राप्त करने की संभावना है, और आप अपने हार्डवेयर के लिए संकलन ध्वज को ट्यून करने की कोशिश कर समय बर्बाद करने की संभावना करेंगे, और यदि आप कुछ गड़बड़ करते हैं, तो समय बिताने से जो वास्तव में विफल रहा है।

यहाँ छवि विवरण दर्ज करें

BSD OSes का एक अलग परिवार है। उनके द्वारा कुछ लोक कसम (कम से कम एक कॉम्स रूम रेगुलर एक फ्रीबस यूजर है), और अलग-अलग बीएसडी में अलग-अलग फ़ोकस हैं - उदाहरण के लिए ओपनबेड्स सिक्योरिटी ऑबसेस्ड है, और फ़्रीबस्ड 'मेनस्ट्रीम' है। वे नहीं कर सकते हैं, कुछ मामलों में एक ही तरह का हार्डवेयर समर्थन लिनक्स करता है, लेकिन यह काफी कुछ कारकों पर निर्भर करता है।

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