2013-02-05 84 views
11

मैं boto पायथन लाइब्रेरी के लिए बैक-एंड के रूप में pycurl का उपयोग कर रहा हूं। यह बहुत तेज़ और बहुमुखी है लेकिन मुझे समस्या है कि बड़े फाइलों के अपलोड अक्सर कनेक्शन रीसेट पर असफल हो जाते हैं। जब मैं सादे सादा httplib के साथ सादाका उपयोग करता हूं, तो यह अधिक विश्वसनीय है।S3 pycurl interrupts के साथ अपलोड करें

मुझे वायरसहार्क का उपयोग करके जो मिला वह यह है कि थोड़ी देर बाद (या कभी-कभी जल्द ही), मेरी मशीन एस 3 से एसीके प्राप्त करना बंद कर देती है, इसलिए यह कनेक्शन को रीसेट करता है। यह लगभग लगता है कि pycurl इतना तेज है कि यह कनेक्शन को चुटकुले करता है। और यदि मैं अपलोड को थ्रॉटल करता हूं (मैं बहु इंटरफ़ेस का उपयोग करता हूं) या धीमे इंटरनेट कनेक्शन का उपयोग करता हूं, तो अपलोड ठीक चलता है।

मैं अभी भी सोच रहा हूं कि मैंने संभवतः गलत क्या किया है।

मैंने .NET S3 SDK के साथ अपलोड करने का भी प्रयास किया। यह लगभग 3 गुना धीमा है, लेकिन सफल होता है। साथ ही, यह विंडोज 7 पर भी है, उसी नेटवर्क पर ओएस एक्स मशीन फिर से बहुत धीमी, लेकिन भरोसेमंद अपलोड करता है।

+1

विंडोज़ में एनआईसी ड्राइवर की तरह लगता है। मैंने इस व्यवहार को अन्य अनुप्रयोगों में भी देखा है। अचूक साक्ष्य कहते हैं कि ड्राइवर में विभिन्न टीसीपी ऑफ़लोडिंग विकल्पों को बंद करने में मदद मिल सकती है। – nikola

उत्तर

3

चूंकि आपने बताया है कि आप विंडोज 7 पर समस्या का अनुभव करते हैं, तो क्या आप व्यवस्थापक के रूप में कमांड प्रॉम्प्ट चला सकते हैं और netsh int tcp show global के परिणाम पोस्ट कर सकते हैं?

TCP Global Parameters 
---------------------------------------------- 
Receive-Side Scaling State   : enabled 
Chimney Offload State    : automatic 
NetDMA State      : enabled 
Direct Cache Acess (DCA)   : disabled 
Receive Window Auto-Tuning Level : normal 
Add-On Congestion Control Provider : none 
ECN Capability      : disabled 
RFC 1323 Timestamps     : disabled 

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

आरएसएस या नेटडीएमए के साथ गड़बड़ करने से पहले, मैं netsh int tcp set global chimney=disabled चलाकर चिमनी ऑफलोड को अक्षम करने और Device Manager > Network Adapters > Advanced tab के तहत टीसीपी ऑफलोड को अक्षम करने का प्रयास करूंगा।

यदि यह आपकी समस्या का समाधान नहीं करता है, तो आपको अन्य दो विकल्पों के साथ प्रयोग करने की आवश्यकता हो सकती है। यहां सभी को संशोधित करने के विवरण के साथ Microsoft KB article है।

+0

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

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^