32 बिट विंडोज सर्वर और एसक्यूएल सर्वर को 64 बिट में अपग्रेड करने के फायदे?


13

मान लीजिए कि मेरे पास एक 32 बिट विंडोज सर्वर बॉक्स है जो SQL सर्वर के साथ कई सर्वर एप्लिकेशन संचालित करता है, पीक समय में लगभग 2 जीबी का रैम उपयोग करता है।

32 बिट के रूप में शेष सर्वर अनुप्रयोग के साथ Windows सर्वर OS और SQL सर्वर को संबंधित 64 बिट संस्करणों में अपग्रेड करने के क्या फायदे होंगे? 64 बिट संस्करण 4 जीबी से अधिक रैम तक पहुंच की अनुमति देते हैं, लेकिन चूंकि 4 जीबी का पूरी तरह से उपयोग नहीं किया जा रहा है जो अपग्रेड मूट को प्रस्तुत करेगा?

संस्करण: विंडोज सर्वर 2008 आर 2, एसक्यूएल सर्वर 2008 आर 2 डाटासेंटर संस्करण

धन्यवाद

जवाबों:


19

दृढ़ता से संबंधित: 32-बिट माइक्रोसॉफ्ट विंडोज डेस्कटॉप ओएस रखने के लिए अच्छे कारण

आप 64 बिट OS का उपयोग कर रहे हैं । सर्वर 2008 R2 केवल 64 बिट सीपीयू का समर्थन करने वाला पहला था।

विंडोज के "नए" संस्करणों को 32 बिट के लिए भी डिज़ाइन नहीं किया गया है। आप शायद किसी भी चीज़ का लाभ नहीं लेंगे, लेकिन न तो कोई नुकसान होना चाहिए। कहा जा रहा है: सर्वर 2008 R2 SP1 (जो मुझे आशा है कि आप उपयोग कर रहे हैं) के रूप में वैसे भी अपग्रेड करें, 2020-01-14 से ईओएल होगा

SQL सर्वर 32 बिट / 64 बिट के लिए: आपकी समझ सही है, अगर आपको कभी भी आवश्यकता नहीं होगी ~ ~ 3,75 GB RAM (या> 2 GB प्रति प्रक्रिया), तो आप 32 बिट संस्करण को बिना किसी समस्या के उपयोग कर सकते हैं। लेकिन नए संस्करणों के लिए कोई भी 32 बिट संस्करण स्थापित नहीं होगा, क्योंकि Microsoft केवल 64 बिट पर स्विच होता है।


6
ओपी "पीक टाइम में 2 जीबी" का उल्लेख करता है, इसलिए यह पूरी तरह से संभव है कि एसक्यूएल सर्वर 2 जीबी से अधिक का उपयोग करना चाहता है, लेकिन यह 32-बिट प्रक्रिया सीमा के कारण नहीं हो सकता है।
मंकीज़ेउस

मामला हो सकता है, मैं वास्तव में नहीं जानता कि क्या एमएस एसक्यूएल सर्वर 2008 विभिन्न कार्यों / उदाहरणों / डेटाबेस / आदि के लिए कई प्रक्रियाओं का उपयोग करता है
लेन्नीज

11

जैसा कि पहले ही उल्लेख किया गया है, आप पहले से ही 64-बिट OS का उपयोग कर रहे हैं। SQL सर्वर के 64-बिट संस्करण और एक नुकसान पर स्विच करने के दो फायदे हैं।

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

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

लेकिन पहले से बने लोगों के लिए, 32-बिट बिल्ड में सीपीयू को संभालना होता है जिसमें वे विशेषताएं नहीं होती हैं और कई उदाहरणों के बीच पता लगाने और स्विच करने की परेशानी से बचने के लिए, बस उनका उपयोग नहीं करते हैं जहां वे मौजूद हैं। उदाहरण के लिए, 64-बिट सीपीयू में SSE2 होना चाहिए, लेकिन 32-बिट CPUs नहीं हो सकता है। इसलिए अधिकांश 32-बिट कोड सिर्फ SSE2 को चेक करने और मानने में परेशान नहीं करता है। 64-बिट कोड का आश्वासन दिया गया है कि SSE2 निर्देश मौजूद हैं और यदि यह सबसे अच्छा विकल्प है तो इसका उपयोग करेगा।

सबसे बड़ी संख्या 8 से 16 तक नामांकित, सामान्य प्रयोजन वाले रजिस्टरों की संख्या में वृद्धि है। 128-बिट एक्सएमएम रजिस्टरों की संख्या भी दोगुनी कर दी गई, 8 से 16 तक।

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


क्या AVX और सह निर्देशों का वास्तव में SQL सर्वर के प्रदर्शन पर ध्यान देने योग्य प्रभाव पड़ता है? मैं मानूंगा (लेकिन मैंने इसे कभी भी बेंचमार्क या टेस्ट नहीं किया है) कि यह ज्यादातर IO सबसिस्टम होगा, जिस पर यह निर्भर करता है।
वू

कुछ आधुनिक 32-बिट कोड SSE2 को ग्रहण करता है, खासकर जब एक OS पर चल रहा हो जो केवल SSE2 के लिए (कुछ अन्य आवश्यक सुविधाओं के साथ) सीपीयू का समर्थन करता है। मुझे लगता है कि Microsoft MSVC के साथ अपना सामान संकलित करता है, जिसमें /arch:SSE232-बिट कोड के लिए एक विकल्प है , जो कि gcc / clang / ICC के बराबर है -msse2। मुझे लगता है कि एसक्यूएल के पास बहुत सारे सिमड वेक्टराइज़्ड लूप नहीं हैं, लेकिन 16-बाइट के सिमड लोड / स्टोर के साथ छोटे स्ट्रक्चर्स की नकल करना अच्छा है।
पीटर कॉर्डेस

X86-64 में अधिक महत्वपूर्ण परिवर्तनों में से एक कुशल स्थिति-स्वतंत्र कोड के लिए पीसी-सापेक्ष एड्रेसिंग है। 32-बिट PIC पुस्तकालयों में आमतौर पर ~ 10% या ~ 15% मंदी (IIRC) बनाम 32-बिट गैर-PIC होती है। अधिक पूर्णांक रजिस्टर होने से भी बहुत मदद मिलती है। 64-बिट में एक बड़ा फायदा एक अच्छा कॉलिंग कन्वेंशन है, लेकिन विंडोज पर (लिनक्स के विपरीत) 32-बिट कोड __fastcallकई कार्यों के लिए रजिस्टरों में आर्ग्स पास करने के लिए करता है। लिनक्स 32-बिट कॉलिंग सम्मेलन विशुद्ध रूप से स्टैक पर है, इसलिए यह छोटे कार्यों के लिए बहुत ही भद्दा है जो इनलाइन नहीं करते हैं।
पीटर कॉर्डेस

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

@DanNeely यह मानता है कि जिसने भी निर्माण किया उसने 32-बिट संस्करण के प्रदर्शन को बेहतर बनाने का प्रयास किया। मेरा अनुभव, कम से कम, यह रहा है कि वे अक्सर मान लेते हैं कि प्रदर्शन की परवाह करने वाले लोग 64-बिट बिल्ड का उपयोग करेंगे।
डेविड श्वार्ट्ज

6

मूल रूप से: हाँ। यह मानते हुए कि आप कभी भी अपडेट नहीं करते हैं जो कि केवल 4 बिट है - यह भी सुनिश्चित नहीं है कि 2008 की तुलना में हाल ही में 32 बिट एसक्यूएल सर्वर भी है।

आपके प्रश्न के मुद्दे: "64 बिट संस्करण 4 जीबी से अधिक रैम तक पहुंच की अनुमति देते हैं," - उस 3 जी को बनाते हैं;) नहीं 4. 1 जीबी हमेशा आरक्षित होता है।


यदि हम इस निपिक हैं, तो सही क्यों नहीं हैं और उल्लेख करते हैं कि 32-बिट प्रोग्राम आसानी से सैकड़ों जीबी रैम तक पहुंच सकता है? ;) यह केवल वर्चुअल एड्रेस स्पेस है जो सीमित है।
वू

3
@Voo: और SQL सर्वर उन कुछ प्रोग्रामों में से एक है जो जानता है कि कैसे।
जोशसन

6

संभावित मुद्दा: सीएलआर उपयोगकर्ता-परिभाषित कार्यों (यूडीएफ) के डीएलएल पुस्तकालयों को उनके 64-बिट संस्करणों की आवश्यकता होगी।

यदि आप CLR यूजर-डिफाइंड फंक्शन्स की लाइब्रेरी का उपयोग कर रहे हैं , तो यह असंगत हो जाएगा। 32-बिट DLL का उपयोग आम तौर पर 64-बिट सॉफ़्टवेयर और इसके विपरीत में नहीं किया जा सकता है। यदि आप यूडीएफ लाइब्रेरी के 64-बिट संस्करण का उपयोग नहीं कर सकते हैं, तो आप उस विशिष्ट एक्सटेंशन को खो देंगे।

असल में यह किसी भी 32-बिट सॉफ़्टवेयर को उसके 64-बिट संस्करण में ऐड-ऑन के साथ अपग्रेड करने के समान ही है। आपको सभी ऐड-ऑन को उनके 64-बिट संस्करणों में बदलने की भी आवश्यकता है। आम तौर पर यह आसान है, लेकिन समस्या वाले लोगों को बंद कर दिया जाता है जहां प्रतिस्थापन उपलब्ध नहीं हैं।


3

प्रदर्शन!

यहां पहले से ही कई तकनीकी जवाब हैं, लेकिन बिना तकनीकी जानकारी के, और आपके आवेदन के आधार पर, आपको एक प्रदर्शन अपग्रेड देखना चाहिए।

मुख्य टुकड़े हैं:

बड़ी मेमोरी एड्रेसिंग: 64-बिट आर्किटेक्चर एक बड़ा सीधा-एड्रेसेबल मेमोरी स्पेस प्रदान करता है। SQL सर्वर 2005 (64-बिट) 32-बिट सिस्टम की 4 जीबी मेमोरी सीमा से बाध्य नहीं है। इसलिए, जटिल क्वेरीज़ करने और आवश्यक डेटाबेस ऑपरेशंस को सपोर्ट करने के लिए अधिक मेमोरी उपलब्ध है। यह अधिक प्रसंस्करण क्षमता पारंपरिक 32-बिट सिस्टम की तुलना में अधिक मेमोरी का उपयोग करके I / O विलंबता के दंड को कम करता है।

उन्नत समानता: 64-बिट वास्तुकला उन्नत समानता और थ्रेडिंग प्रदान करता है। समानांतर प्रसंस्करण और बस आर्किटेक्चर में सुधार 64-बिट प्लेटफार्मों को प्रोसेसर की बड़ी संख्या (64 तक) का समर्थन करने में सक्षम बनाता है, जबकि प्रत्येक अतिरिक्त प्रोसेसर के साथ रैखिक मापनीयता प्रदान करता है। बड़ी संख्या में प्रोसेसर के साथ, SQL सर्वर एक ही सिस्टम में अधिक प्रक्रियाओं, अनुप्रयोगों और उपयोगकर्ताओं का समर्थन कर सकता है।

https://teratrax.com/sql-server-64-bit/

सबसे नाटकीय परिणाम जो मैंने 32-बिट से 64-बिट एसक्यूएल सर्वर (यह एसक्यूएल सर्वर 2005 था) में जाने पर देखा, जो क्लाइंट के प्रमुख एप्लिकेशन पर 40% की गति को बढ़ावा देने वाला था। हमने केवल 64-बिट SQL सर्वर स्थापित किया था, बाकी सब समान था! यह वास्तविक दुनिया में एक प्रमुख प्रदर्शन को बढ़ावा देने वाला था।


-2

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

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