वेब सर्वर और DB सर्वर प्रभाव प्रदर्शन के बीच "बिट समता" की कमी हो सकती है?


10

मैंने आज एक सॉफ्टवेयर विक्रेता के साथ एक विशेष एप्लिकेशन को तैनात करने के लिए उनके अनुशंसित बुनियादी ढांचे के बारे में बैठक की। एप्लिकेशन को दो सर्वर की आवश्यकता होती है: सर्वर वेब पेज (.NET, विंडोज) और एक डेटाबेस (SQL सर्वर) के लिए एक ऐप सर्वर। विक्रेता ने दावा किया कि इन दोनों सर्वरों के लिए "बिट समता" होनी चाहिए। उनके कहने का मतलब यह है कि यदि ऐप सर्वर 32 बिट था तो SQL सर्वर 32 बिट होना चाहिए, या यदि ऐप 64 बिट है तो SQL सर्वर 64 बिट है। अन्यथा प्रदर्शन नकारात्मक रूप से प्रभावित होगा।

यह मुझे बड़ा अजीब लगता है। सर्वर स्वतंत्र हैं और केवल एक नेटवर्क पर संवाद करते हैं। नेटवर्क प्रोटोकॉल का सर्वर पर प्रोसेसर के "बिट-नेस" से कोई लेना-देना नहीं है।

क्या मैं गलत हूं? क्या कोई ऐसा कारण है जहां वास्तव में एक बेमेल प्रदर्शन को नकारात्मक रूप से प्रभावित कर सकता है?

ध्यान दें: मुझे पता है कि कुछ एप्लिकेशन 32 बिट बनाम 64 बिट में तेजी से या धीमे चल सकते हैं। लेकिन विक्रेता कह रहा था कि वेब सर्वर और डीबी सर्वर के बीच बेमेल समस्या का कारण बनता है। यह वह कथन है जिस पर मैं सवाल उठा रहा हूं।


अन्य सभी चीजें बराबर हैं, वह सोचता है कि 32 और 32 रन 32 और 64 से अधिक तेज हैं?
जेएफओ

जो कि वेंडर दावा कर रहा था, हाँ। 32,32 या 64,64 का प्रदर्शन 32,64 या 64,32 से अधिक है।
रेशनलगीक

उन्हें सिस्टम के दो वेरिएंट सेट करने के लिए प्राप्त करें। फिर तनाव उनका परीक्षण करें। सबसे सस्ता संस्करण खरीदें जो आपकी आवश्यकताओं को पूरा करता है।
मार्टिन

जवाबों:


10

मुझे लगता है कि यह संभव है कि वे उन दो उत्पादों के बीच कुछ विशिष्ट बातचीत के बारे में जानते हैं जो एक मिसमैच होने पर एक समस्या का कारण बनता है (लेकिन मुझे वास्तव में संदेह है - मैं लगभग 10: 1 अंतर डालूंगा कि विक्रेता इससे भरा हुआ है)।

आप इस तरह बेमेल के प्रभावों के बारे में प्रश्नों के लिए सर्वरफ़ॉल्ट पर देखना चाहते हैं, लेकिन मुझे संदेह है कि आप बहुत कुछ पाएंगे, क्योंकि मुझे संदेह है कि खोजने के लिए कोई वास्तविक समस्या है ...


1
+1, मुझे लगता है कि तुम सही हो। प्रत्येक व्यक्तिगत बॉक्स पर अच्छी तरह से प्रदर्शन के विचार हो सकते हैं, लेकिन नेटवर्क पर, चाहे कुछ 32 बिट हो या 64 बिट अप्रासंगिक हो।
मू-जूस

1
क्या यह संभव है? मैं एक परिदृश्य के बारे में नहीं सोच सकता, जहां यह एक भौतिक संभावना है। मैं "विक्रेता से भरा" विकल्प की ओर भी झुक रहा हूं। :-)
रैशनलगीक

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

यह संभवतः तभी होगा जब वे निम्न स्तर के नेटवर्क प्रोटोकॉल का उपयोग कर रहे थे जो उस तरह की चीज़ के लिए अनुमति देते थे। "सामान्य" टीसीपी / आईपी का उपयोग करना या जो भी इस प्रकार के मुद्दों को रोकता है। और भेजने की गति बनाम प्राप्त करने की गति का सर्वर "बिट-नेस" से कोई लेना-देना नहीं है।
रेशनलगीक

3
मैंने देखा है कि वेंडर के नासमझ होने के कारण समस्याएँ होती हैं, जैसे कि नेटवर्क संदेश में एक फ़ील्ड को एक्सपोज़ करना जो कि एप्लिकेशन के "बिटनेस" के आधार पर आकार में भिन्न होता है, बिना यह पता लगाए कि आपको किस क्षेत्र का आकार भेजना चाहिए / अपेक्षा करना चाहिए।
जेफरी हेंटिन

6

प्रमाण मांगो। उसने एक संदेहास्पद बयान दिया है, वह (गलत-) आपको सामान बेच रहा है, या तो उसे इसे वापस लेना चाहिए या इसे वापस लेना चाहिए। अपने आप को बचाओ।


यह एक अच्छा विचार है। मैं ऐसा करने की योजना बना रहा हूं। इस प्रश्न का बिंदु यह सुनिश्चित करने के लिए था कि मैं ऐसा करने से पहले पागल नहीं था। :-)
रेशनलगीक

4

32bit और 64bit सर्वर जोड़े के बीच का अंतर सबसे अधिक संभावना में होगा कोई अंतर नहीं करता है। इससे क्या फर्क पड़ेगा कि विभिन्न प्रक्रियाओं की समाप्ति है, जिसे बिक्री व्यक्ति "बिट समता" होने के रूप में भ्रमित कर सकता है।


2
यहां तक ​​कि यह प्रोटोकॉल पर निर्भर करता है (और मैं मानता हूं कि मुझे नहीं पता कि डीबी कैसे काम करते हैं)। यदि सर्वर / क्लाइंट अपनी समाप्ति की घोषणा करता है और अन्य एक इसे स्वीकार करता है, तो आप बिल्कुल सही हैं; लेकिन पारंपरिक रूप से नेटवर्क प्रोटोकॉल बड़े endian किया गया है, और उन परिस्थितियों में दो छोटे-endian बक्से हैं दोनों परिवर्तित करने के लिए है, उन्हें एक ले से एक नुकसान के और अधिक पर डाल / जोड़ी जाएगा।
Ijw

3

संक्षेप में मैं कहूंगा कि कोई भी समानता नहीं है। SQL सर्वर में एक अलग 64-बिट और 32-बिट प्रोटोकॉल नहीं है।

हालाँकि, मैं आपको सलाह दूंगा कि आप सर्वर को 64 बिट पर स्विच करें। SQL Server 64 बिट में ही आता है और मेरा मानना ​​है कि Windows Server उस दिशा में भी बढ़ रहा है।


मैं सहमत हूँ 64 बिट भविष्य है। लेकिन यह मेरे सवाल का मुद्दा नहीं था। मैं विक्रेताओं के सवाल पर सवाल उठा रहा हूं कि बिट समता एक वैध आवश्यकता है जो वे हम पर डाल रहे हैं। हमारे पास मौजूदा सर्वर फ़ार्म हैं जो हम उपयोग करना चाहते हैं जो समता में नहीं हैं।
RationalGeek

2

ठीक है, अगर कहा जाता है कि विक्रेता सख्ती से प्रदर्शन की बात कर रहा था, तो इसके लिए कुछ सच्चाई हो सकती है। निश्चित रूप से x86 और amd64 सिस्टम के बीच कोई असंगति नहीं है, क्योंकि नेटवर्क प्रोटोकॉल को दूर छिपाना चाहिए।

हालाँकि स्थानांतरण के दौरान मूल्यों के आंतरिक प्रतिनिधित्व को बदलना होगा। तो किसी न किसी रूप में pack/unpackइसका हिस्सा होगा। मैं फिर भी यह मानूंगा कि नेटवर्क प्रोटोल दो भिन्नताओं को परिभाषित नहीं करता है, और या तो 64 बिट नेटवर्क या 32 बिट मूल्यों के लिए अनुकूलित है। इसलिए इसमें रूपांतरण शामिल हो सकता है, और यह औसत दर्जे का भी हो सकता है। लेकिन यह मृत होने की संभावना नहीं महत्वपूर्ण है।


1

तकनीकी रूप से SQL सर्वर से कनेक्शन आमतौर पर एक बाइनरी चैनल है (अब मुझे नहीं पता है कि यह प्रणाली विशेष रूप से यह एक पाठ आधारित चैनल हो सकता है) इसलिए किसी क्वेरी के परिणाम प्राप्त होने पर गंतव्य छोर पर कुछ रूपांतरण होगा।

इससे दो प्रश्न होते हैं:

  1. क्या यह रूपांतरण केवल 32x64 पर किया गया है,
    यह हो सकता है कि बाइनरी चैनल सिस्टम अज्ञेयवादी हो (ताकि यह 32x64 और 32x32 और 64x64 का समर्थन कर सके) और रूपांतरण 32x32 सिस्टम पर वैसे भी होगा।

  2. रूपांतरण की लागत क्या है।
    मैं कल्पना नहीं कर सकता कि यह आपको प्रभावित करने वाला है। बाइनरी से बाइनरी रूपांतरण की लागत छोटी और निश्चित है।

एक और सवाल है जो आपको पूछना चाहिए:

क्या बिट समता होने की लागत अधिक है? अगर नहीं तो सलाहकारों के साथ खिलवाड़ क्यों। यदि महत्वपूर्ण लागत अंतर है, तो प्रदर्शन में वास्तविक कमी क्या है और सबसे महत्वपूर्ण बात यह है कि प्रदर्शन में कमी आपकी थ्रेसहोल्ड स्वीकृति के नीचे वेब सर्वर के प्रदर्शन को कम करती है।

यानी अगर आपको सर्वर को 200 पेज सेकेंड का सर्वर चाहिए। एक 32x32 सिस्टम 202 दे सकता है एक 32x64 200 वितरित कर सकता है और एक 64x64 210 वितरित कर सकता है। तब इस स्थिति में यह मायने नहीं रखता है कि आपके पास कौन सी प्रणाली है (वे सभी बार मिलते हैं), लेकिन अतिरिक्त 10 पृष्ठों के लायक अतिरिक्त लागत एक सेकंड है ।

अंत में भले ही एक छोटी सी अतिरिक्त लागत हो (जो मुझे संदेह है)। क्या यह लागत वेबस्वर द्वारा अर्जित अन्य लागतों के मुकाबले महत्वपूर्ण या औसत दर्जे की है। यानी एक चरम उदाहरण को देखते हुए: यदि पेज बनाने की लागत 100ms है, जिसमें से 15ms वेबसर्वर है। यदि गैर-बिट समता संस्करण 33% अधिक महंगा (20ms) है, तो यह sill केवल पृष्ठ का निर्माण करने की लागत को 105ms तक बढ़ाता है और केवल 5% की वृद्धि होती है।


यह दिलचस्प मार्टिन है। क्या इस बाइनरी चैनल रूपांतरण के लिए कोई संदर्भ पृष्ठ है?
रेशनलगीक

@jkohlhepp: आपको 'एसक्यूएल सर्वर' के बारे में कार्यान्वयन विवरण का पता लगाना होगा। स्पष्ट रूप से यह मालिकाना प्रोटोकॉल का उपयोग करता है टेबुलर डेटा स्ट्रीम मुझे इसके बारे में कुछ भी नहीं पता है लेकिन इस पृष्ठ के अनुसार एमएस ने प्रोटोकॉल प्रकाशित किया है।
मार्टिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.