क्या PostgreSQL एक OS के अनुकूल है? क्या यह विंडोज की तुलना में लिनक्स पर बेहतर है?


26

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

हालाँकि मैं एक नई परियोजना शुरू करने वाला हूँ और स्थिरता और प्रदर्शन महत्वपूर्ण होने के बजाय लिनक्स बॉक्स का उपयोग करने पर विचार कर रहा हूँ। चूंकि PostgreSQL ज्यादातर लिनक्स वितरण पर विकसित किया गया लगता है, शायद लिनक्स के साथ रहना बेहतर होगा?


2
एक मंच चुनना एक sysadmin फ़ंक्शन है, भले ही यह किसी डेवलपर द्वारा किया गया हो।
araqnid


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

जवाबों:


46

PostgreSQL निश्चित रूप से विंडोज की तुलना में लिनक्स पर तेजी से चलेगा (और मैं इसे उन लोगों में से एक कह रहा हूं जिन्होंने इसे विंडोज़ पोर्ट लिखा था ..) यह एक यूनिक्स शैली की वास्तुकला के लिए डिज़ाइन किया गया है, और विंडोज पर इसी आर्किटेक्चर को लागू करता है, जिसका अर्थ है कई चीजें हैं जो विंडोज को अच्छी तरह से करने के लिए डिज़ाइन नहीं की गई हैं। यह ठीक काम करता है, लेकिन यह भी प्रदर्शन नहीं करता है।

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

फाइलसिस्टम के आसपास कुछ धारणाएं भी हैं जो NTFS का पक्ष नहीं लेती हैं।

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


धन्यवाद! एक आधिकारिक उत्तर मिला, हालांकि मेरे मामले में विंडोज से चिपके रहना ठीक लगता है: मेरे पास बहुत कम कनेक्शन हैं और कोई एंटी वायरस नहीं है (मैं उन्हें भी नापसंद करता हूं)। प्रदर्शन भी बहुत अच्छा रहा है: मुझे लगता है कि विंडोज कैशिंग और IO गति (जब आपके पास ड्राइवर हैं) मेरी मदद करता है ..

कुछ वास्तविक दुनिया थ्रूपुट बेंचमार्क देखकर अच्छा

1
BTW, कनेक्शन पूल का उपयोग अधिक प्रक्रिया निर्माण / विनाश लागत के कारण विंडोज पर विशेष रूप से सहायक होगा।
क्रेग रिंगर

मैंने पुराने 8.1 और 8.2 दिनों में विंडोज बनाम लिनक्स पर PostgreSQL की साइड-बाय-साइड तुलना की थी। हमारे लोड के लिए लिनक्स लगभग 50% तेज था। यह स्पष्ट नहीं है कि इसमें से केवल नेटवर्किंग कितना था, हालांकि, क्योंकि ग्राहक एक अलग बॉक्स पर थे और खुले कनेक्शन पर कच्चे नेटवर्क थ्रूपुट का परीक्षण करने के लिए एक ही जावा कोड का उपयोग करते हुए 30% तेजी से भागते थे जब दोनों पक्षों की तुलना में लिनक्स थे जब दोनों थे विंडोज। दिलचस्प बात यह है कि जब एक पक्ष लिनक्स था और एक विंडोज था तो यह दोनों पक्षों की तुलना में 15% धीमा था।
kgrittn

2

इसका उत्तर देना कठिन है: जैसा कि केन ने उल्लेख किया है, Postgres OS के बीच कोई अंतर नहीं रखता है और यह विंडोज में स्थिर / अस्थिर है जैसा कि यह लिनक्स पर है।

इस प्रश्न का एकमात्र वास्तविक उत्तर है: इसे आज़माएं।

एक ही सर्वर के साथ एक लिनक्स सर्वर और एक विंडोज सर्वर सेट करें, दोनों मशीनों पर समान मात्रा में डेटा का उपयोग करें और अपने परीक्षण चलाएं।

पुनश्च: इसमें करीबी वोट होते हैं क्योंकि यह सर्वरफॉल्ट पर बेहतर तरीके से पूछा जा सकता है


क्या यह ServerFault पर बेहतर है? मैंने इसे सिस्टम व्यवस्थापक के लिए एक समस्या के बजाय डेवलपर्स के लिए एक सॉफ्टवेयर समस्या के रूप में वर्गीकृत किया होगा।

1
यह एक सॉफ्टवेयर समस्या नहीं है, किसी भी डेवलपर को कभी भी अपने SQL के बारे में चिंता करने की ज़रूरत नहीं है: PostgreSQL लिनक्स पर समन SQL का उपयोग करता है जैसा कि यह विंडोज पर करता है।
फ्रैंक हाइकेन

2

यह मेरी समझ है कि, समान हार्डवेयर के लिए, आपको विंडोज के विपरीत लिनक्स पर बेहतर प्रदर्शन मिलेगा। इसके अलावा, जबकि Postgres खिड़कियों पर चलता है, यह बहुत, बहुत लंबे समय के लिए * nix पर चल रहा है। YMMV बेशक आपकी स्थिति पर निर्भर करता है।

पोस्टग्रेज़ के प्रदर्शन पर एक बहुत अच्छा संदर्भ "पोस्टग्रेसीक्यू 9.0 उच्च प्रदर्शन" ( https://www.packtpub.com/postgresql-9-0-high-performance/book ) है। शीर्षक थोड़ा सा मिथ्या नाम है क्योंकि यह केवल संस्करण 9.0 से अधिक है।


-1

AFAIK पोस्टग्रैड्स भेदभाव नहीं करते हैं, वे विंडोज पर सुविधाओं को अपंग नहीं करते हैं, या ऐसा कुछ भी नहीं है। इसलिए Postgres के बारे में कुछ भी नहीं है जो Linux की आवश्यकता है।

आप आमतौर पर लिनक्स के बारे में पूछ सकते हैं। बनाम विंडोज एक सामान्य सर्वर प्लेटफॉर्म के रूप में।

सुझाव: लेकिन मेरे पैसे के लिए एक सर्वर हमेशा लिनक्स चलाता है। कभी भी विंडोज पर मिशन-क्रिटिकल सर्वर सॉफ्टवेयर डालने का सपना नहीं होगा। बस मेरे 2 सेंट। राय का अंत।


stability and **performance** are crucial
व्लादिस्लाव रैस्ट्रुसनी

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