2016-01-17 10 views
11

में httpclose या http-server-close का उपयोग कब करें, मुझे एक सिस्टम मिला है जहां नेटवर्क विलंबता के कारण इसमें कुछ प्रदर्शन समस्याएं हैं। हम CentOS 5.x का उपयोग कर रहे हैं, और haproxy 1.5xhaproxy

कारण "प्रारंभिक कनेक्शन"

Example

पर ध्यान न दें पर खर्च समय की वजह से प्रत्येक API अनुरोधों पर खर्च बहुत समय है कि वहाँ है शेष समय के रूप में यह वेब से लिया गया एक उदाहरण है, शेष समय "अंतराल कनेक्शन" को छोड़कर मेरे अंत से ठीक है, जहां सभी एपीआई कॉल "प्रारंभिक कनेक्शन" के लिए 150 - 250ms के आसपास होते हैं।

हैपरॉक्स से "विकल्प httpclose" सेटिंग्स को हटाने के बाद, प्रदर्शन में उल्लेखनीय सुधार हुआ है क्योंकि "प्रारंभिक कनेक्शन" से सभी प्रतीक्षा समय समाप्त हो गए हैं।

:

कुछ लेख अध्ययन करने के बाद मैं ने पाया है कि यह एक http://killtheradio.net/technology/haproxys-keep-alive-functionality-and-how-it-can-speed-up-your-site/

कहाँ इसे हटाने के लिए सुझाव देते हैं:

option httpclose 

और

timeout client 5000 
option http-server-close 

के साथ बदलें तो मेरी सवाल कर रहे हैं

  • विकल्प httpclose का उपयोग कब करें?
  • हैपरॉक्स का उपयोग करने वाला सर्वर हमारे सभी आरामिक एपीआई कॉल के लिए ज़िम्मेदार है, क्या कोई अन्य विचार है जो मुझे कॉन्फ़िगरेशन "विकल्प httpclose" को हटाने के बाद जागरूक होने की आवश्यकता है?
  • क्या मुझे "विकल्प http-server-close" का उपयोग करना चाहिए और प्रभाव क्या हैं?

उत्तर

3

आप वास्तव में

option http-keep-alive 

आप यह सुनिश्चित करें कि दृश्यपटल सीमा काफी अधिक होती है की जरूरत का उपयोग करना चाहिए (स्मृति आवश्यकताओं की सावधान रहना होगा) कि वे सक्रिय सत्र की संख्या में वृद्धि, समायोजित कर सकते हैं जो इस तथ्य के कारण अधिक होगा कि प्रत्येक अनुरोध के बाद कनेक्शन बंद नहीं होंगे।

अगला बात यह सुनिश्चित कर रही है कि आपका बैकएंड समर्थन HAproxy की ओर जिंदा रहता है, अन्यथा उपरोक्त बेकार है और आप http-server-close मोड पर वापस स्विच कर सकते हैं।

आपके अनुरोधों की दर और समांतर ग्राहकों की संख्या के आधार पर, आपको यह सुनिश्चित करने के लिए timeout http-keep-alive समायोजित करने की आवश्यकता है ताकि आपके पास फ्रंट कनेक्शन पर पर्याप्त कनेक्शन स्लॉट हों, जबकि अभी भी अच्छे कनेक्शन पुन: उपयोग प्रतिशत को बनाए रखा जाए। शुरू करने के लिए अच्छा मूल्य कुछ सेकंड है।

httpclose विकल्प केवल तभी उपयोग किया जाना चाहिए यदि आप सर्वर और क्लाइंट दोनों के लिए कनेक्शन बंद करना चाहते हैं, जो क्लाइंट टूटा हुआ होने तक लगभग कभी भी मामला नहीं है। यदि आपके पास ऐसा सर्वर है जो बहुत से निष्क्रिय अनुरोधों का सामना नहीं कर सकता है, तो आप http-server-close विकल्प का उपयोग करना चाहेंगे, लेकिन सभी आधुनिक वेब सर्वर इसे अच्छी तरह से उपयोग कर सकते हैं।

यह एसएसएल भाग में भी मदद करेगा क्योंकि यह कनेक्शन चरण के एक महत्वपूर्ण हिस्से का प्रतिनिधित्व कर रहा है (बशर्ते कि उसे प्रत्येक अनुरोध पर एसएसएल हैंडशेक की आवश्यकता नहीं होगी), लेकिन आप एसएसएल सत्र कैश प्रदर्शन में देखना चाहेंगे और यदि आपके पास एक से अधिक HAproxy सर्वर सक्रिय हैं, तो RFC5077 समर्थन (v1.6 + की आवश्यकता है)।

https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#tune.ssl.cachesize https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#3.2-tune.ssl.lifetime

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