2015-07-14 9 views
19

हमारे पास एक node.js वेब सर्वर है जो बाहरी आउटपुट के लिए कुछ आउटगोइंग http अनुरोध करता है। यह dokku का उपयोग कर डॉकर में चल रहा है।
लोड के कुछ समय बाद (30req/s) इन आउटगोइंग अनुरोधों को अब प्रतिक्रिया नहीं मिल रही है। graph incoming और outgoing (initialized अनुरोधों की संख्या नहीं) समवर्ती अनुरोधों की राशि है:डॉकर उच्च लोड पर आउटगोइंग कनेक्शन अवरुद्ध कर रहा है?

यहाँ एक ग्राफ मैं लगातार अनुरोध/एस के साथ परीक्षण करते हुए बनाया है। (ग्राफ में देखना मुश्किल है, लेकिन यह प्रत्येक के लिए ~ 10 अनुरोधों पर काफी स्थिर है।)
response time केवल बाहरी अनुरोधों के लिए है। आप स्पष्ट रूप से देख सकते हैं कि वे अचानक (हमारे 1000ms टाइमआउट को मारने) में विफल होने लगते हैं।


अधिक अनुरोध/s हम भेजने के लिए, तेजी से हम इस समस्या में पड़, तो हम सीमा के कुछ प्रकार हम प्रत्येक अनुरोध के साथ पास ही हैं होना आवश्यक है।


मैं मेजबान पर netstat -ant | tail -n +3 | wc -l इस्तेमाल किया खुले कनेक्शनों की संख्या प्राप्त करने के लिए, लेकिन यह था केवल ~ 450 (उनमें से ज्यादातर TIME_WAIT)। वह सॉकेट सीमा को हिट नहीं करना चाहिए। हम किसी भी रैम या सीपीयू सीमा को मार नहीं रहे हैं, या तो।


मैं भी यही और डोकर बाहर एक ही मशीन पर अनुप्रयोग यह केवल डोकर में होता चला कर देखा था।

+0

क्या आपने इसे डॉकर के अंदर चलाने की कोशिश की है लेकिन डोक्कू के अंदर नहीं? – blacklabelops

+0

परिभाषित करें 'वर्तमान में संसाधित'। अनुरोध समय समाप्ति के लिए 1000ms बहुत छोटा है। दस सेकंड की तरह कुछ समझदार कोशिश करें। – EJP

+0

@maybeg मुझे ऐसा नहीं है क्योंकि डॉकू लोगों ने मुझे बताया कि वे किसी भी नेटवर्क चीजों को छू नहीं रहे हैं। मैं बाद में कोशिश करूंगा। – jomo

उत्तर

3

यह डॉकर उपयोगकर्तालैंड प्रॉक्सी के कारण हो सकता है। यदि आप डॉकर का हालिया संस्करण चला रहे हैं, तो --userland-proxy=false विकल्प के साथ डेमॉन चलाने का प्रयास करें। यह सिर्फ iptables के साथ डॉकर हैंडल पोर्ट अग्रेषण करेगा और कम ओवरहेड होगा।

+0

मैंने अभी यह कोशिश की है, ऐसा कोई फर्क नहीं पड़ता है। – jomo

+0

@jomo, उस स्थिति में, यह एक कर्नेल विन्यास हो सकता है। हो सकता है कि यह SO प्रश्न/उत्तर आपको http://stackoverflow.com/questions/410616/increasing-the-maximum-number-of-tcp-ip-connections-in-linux –

+0

में देखने के लिए कुछ दे सकता है जो हम शुरुआत में करते हैं सोचा समस्या थी, लेकिन यह समझा नहीं जाएगा कि यह डॉकर के बाहर क्यों नहीं होता है (जहां हम वास्तव में डॉकर से अधिक कनेक्शन थे) – jomo

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