डेटाबेस सर्वर के लिए CPU प्रदर्शन प्रासंगिक है?


33

यह विशुद्ध सैद्धांतिक सवाल है। मान लीजिए कि मेरे पास कई सर्वरों पर एक एप्लिकेशन तैनात है।

  1. एक लोड बैलेंसर,
  2. एकाधिक / स्केलेबल अनुप्रयोग सर्वर
  3. ए (एकल) डेटाबेस सर्वर (फिलहाल)

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

  • क्या सीपीयू फ्रीक्वेंसी डेटाबेस सर्वर के लिए प्रासंगिक है?
  • क्या कई कोर सीपीयू प्रासंगिक हैं?
  • क्या CPU से ज्यादा महत्वपूर्ण है RAM?

PS: चुने हुए डेटाबेस का चयन MySQL या PostgreSQL है।


खैर, यह एक होना चाहिए।
ConcernedOfTunbridgeWells

जवाबों:


29

PostgreSQL के लिए, सीपीयू शक्ति बहुत प्रासंगिक हो सकती है, खासकर अगर आपके डेटा के सक्रिय कामकाजी सेट का एक उच्च प्रतिशत रैम में फिट बैठता है। मैंने जिन डेटाबेस के साथ काम किया है उनमें से अधिकांश में सीपीयू की शक्ति मुख्य रूप से सबसे बड़ी अड़चन थी। (मैंने अभी डेटाबेस की 5TB से अधिक हिट वाली प्रति दिन लाखों हिट के साथ वेब साइटों की मेजबानी करने वाले सर्वर पर vmstat की जांच की, और मैंने कभी भी 2% से अधिक डिस्क प्रतीक्षा समय नहीं देखा, लेकिन 12% उपयोगकर्ता CPU समय की एक चोटी देखी।)

चूंकि PostgreSQL प्रक्रिया-आधारित है, कोई भी एकल प्रक्रिया केवल एक कोर के रूप में तेजी से चल सकती है, लेकिन जैसे कि हमारे पास ऊपर उल्लेखित सर्वर पर है, छोटे अनुरोधों की उच्च मात्रा के साथ, सभी कोर में कुल सीपीयू सबसे महत्वपूर्ण है। एक ही कुल CPU शक्ति के लिए, PostgreSQL आमतौर पर कम, तेज कोर के साथ कई, धीमी कोर के साथ बेहतर करेगा।

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

इस विषय पर अधिक जानकारी के लिए चूंकि यह PostgreSQL से संबंधित है, मुझे नहीं लगता कि ग्रेग स्मिथ द्वारा PostgreSQL 9.0 उच्च प्रदर्शन की तुलना में बेहतर स्रोत है । (पूर्ण प्रकटीकरण, मैं पुस्तक के लिए तकनीकी समीक्षक था, लेकिन बिक्री के आधार पर कोई वित्तीय लाभ नहीं मिला।)


अरे, मेरे पास किताब है। क्या कोई विशेष पृष्ठ, अनुभाग या अध्याय है जिसे आप दोहरा रहे हैं ??? (पोस्टग्रेज्यूएल परिप्रेक्ष्य के लिए बीटीडब्ल्यू +1)
रोलैंडम्यूसीडीडीबीए

PostgreSQL के बारे में जानकारी के लिए धन्यवाद। मैं किताब की जांच करूंगा। ;)
ज़ेनकिल्स

1
पेज 21-23 से अच्छा सामान
RolandoMySQLDBA

मैं 21-23 पेजों की तुलना में आपके दूसरे पैराग्राफ का ज्ञान देख सकता हूं।
रोलैंडमाइसीडीडीबीए

23

एक MySQL के नजरिए से कड़ाई से, यह एक बहुत भरा हुआ सवाल है

एक डेटाबेस सर्वर के लिए प्रासंगिक CPU आवृत्ति?

जबकि तेजी से सीपीयू और मदरबोर्ड महान हैं, अन्य बाधाओं को रास्ते में मिल सकता है। ऐसी अड़चनों में शामिल हैं:

  • डिस्क I / O
  • कनेक्शन मैक्सिमम
  • नेटवर्क विलंबता
  • प्रति कनेक्शन क्वेरी प्रदर्शन

हर छोटा फायदा मदद करता है, लेकिन मुझे ना कहना है क्योंकि सीपीयू की गति, अपने आप में, उपरोक्त बाधाओं पर नहीं सुधरती है। आखिर, फॉर्मूला वन रेसकार ओपन पैराशूट पहनने या व्हील में 800 पाउंड गोरिल्ला के साथ क्या अच्छा कर सकती है?

क्या कई कोर सीपीयू प्रासंगिक हैं?

यह पूरी तरह से निर्भर करता है कि आप MySQL के किस संस्करण पर चल रहे हैं। MySQL 5.1 InnoDB प्लगइन, MySQL 5.5, और Percona सर्वर के XtraDB सभी सेटिंग्स हैं जो आपको सभी कोर तक पहुंचने के लिए InnoDB प्राप्त करने के लिए आवश्यक रूप से आवश्यक हैं। ऐसा करने के लिए वास्तविक प्रोत्साहन इस तथ्य से उपजा है कि MySQL LEFT UNCONFIGURED के कुछ पुराने संस्करण नए संस्करणों की तुलना में अधिक तेज़ हैं क्योंकि मैंने अपनी पिछली पोस्ट्स में चर्चा की थी:

इसलिए, यदि आप सभी CPU को एक्सेस करने के लिए InnoDB को कॉन्फ़िगर करने के लिए तैयार नहीं हैं , तो कई कोर होने से आप बिल्कुल कुछ नहीं खरीदते हैं

क्या CPU से ज्यादा महत्वपूर्ण है RAM?

ओह, हाँ वास्तव में। MySQL के लिए मेमोरी कॉन्फ़िगरेशन सेट अप करने की आवश्यकता होती है

इन चीजों और MySQL के किसी भी संयोजन का बहुत कम या बहुत अधिक अनुरोध करना आपको काटने के लिए वापस आता है। MySQL के साथ एक तेज CPU रैम के लिए अनुचित रूप से कॉन्फ़िगर किया गया है, जिससे MySQL आपको तेजी से काटता है।


2
बहुत बढ़िया जवाब। मैं उन सभी लिंक की जाँच करने जा रहा हूँ, धन्यवाद।
ज़ेनकिल्स

6
  • नहीं
  • नहीं
  • हाँ

सरल शब्दों में, आपको डेटाबेस के लिए RAM और IO प्रदर्शन (विलंबता + पढ़ने की गति + लिखने की गति) की आवश्यकता होती है।

4 या 6 कोर या 2.5 गीगाहर्ट्ज बनाम 3 गीगाहर्ट्ज़ का विकल्प वास्तव में प्रासंगिक नहीं है (मुझे लगता है कि आपको 32 जीबी रैम या 1 जीबी रैम के साथ नवीनतम एक्सोन के बीच एक पी 3-450 के बीच चयन करने की आवश्यकता नहीं है)।

यदि आप सीपीयू बाध्य हैं, तो आपको अन्य समस्याएं हैं (खराब डिज़ाइन, खराब इंडेक्स, स्वैपिंग, गैर-समर्पित सर्वर आदि)


जवाब के लिए धन्यवाद। SSD तो एक अच्छा विकल्प हैं? सीपीयू पावर पर?
ज़ेनकिल्स

@Zenklys: कहना मुश्किल है। आपके पास किस आकार का डेटाबेस है? मात्रा लिखें? लोड पढ़ें? OLTP या OLAP? आदि
gbn

20- 30 gb अधिकतम। 10 से 1 पढ़ने / लिखने का अनुपात, केवल छोटा डेटा, ओएलटीपी।
ज़ेनकिल्स

2
@Zenklys: किस मामले में, यह वास्तव में मायने नहीं रखता। बस RAM को विशेष रूप से MySQL के लिए खरीदें ताकि जितना संभव हो उतना डेटा कैश किया जाए
gbn

3
निश्चित नहीं कि यह स्वीकृत उत्तर क्यों है। यह सरलीकृत है क्योंकि यह एप्लिकेशन, कार्य भार या डेटा सेट आकार पर विचार नहीं करता है। @kgrittn ने वास्तविक दुनिया के अनुभव में बेहतर उत्तर दिया और पोस्टग्रेज के संचालन के सिद्धांत की बेहतर समझ हासिल की।
debhur
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.