शुरू करने के लिए आपको एक काम करना चाहिए net.ipv4.tcp_fin_timeout=1
। यह कम करने का तरीका है, आपको संभवतः 30 से कम नहीं लेना चाहिए।
चूंकि यह नगनेक्स के पीछे है। इसका मतलब यह है कि nginx एक रिवर्स प्रॉक्सी के रूप में कार्य कर रहा है? अगर ऐसा है तो आपके कनेक्शन 2x (ग्राहक से एक, आपके वेब सर्वर पर एक) हैं। क्या आप जानते हैं कि ये सॉकेट किसके हैं?
अपडेट:
fin_timeout, वे कितनी देर तक फिन-वॉइट -2 ( networking/ip-sysctl.txt
कर्नेल प्रलेखन में) से बने रहते हैं:
tcp_fin_timeout - INTEGER
Time to hold socket in state FIN-WAIT-2, if it was closed
by our side. Peer can be broken and never close its side,
or even died unexpectedly. Default value is 60sec.
Usual value used in 2.2 was 180 seconds, you may restore
it, but remember that if your machine is even underloaded WEB server,
you risk to overflow memory with kilotons of dead sockets,
FIN-WAIT-2 sockets are less dangerous than FIN-WAIT-1,
because they eat maximum 1.5K of memory, but they tend
to live longer. Cf. tcp_max_orphans.
मुझे लगता है कि शायद आपको लिनक्स को TIME_WAIT सॉकेट नंबर को अपने पास रखने देना होगा, जो दिखता है कि उनके ऊपर शायद 32k कैप है और यह वह जगह है जहां लिनक्स उन्हें पुन: चक्रित करता है। इस लिंक में 32k को लिखा गया है :
इसके अलावा, मैं / proc / sys / net / ipv4 / tcp_max_tw_buckets भ्रमित करता हूं। हालाँकि डिफ़ॉल्ट 180000 पर सेट किया गया है, लेकिन जब मुझे अधिकतम ट्व बकेट की परवाह किए बिना अपने सिस्टम पर 32K TIME_WAIT सॉकेट्स होते हैं, तो मुझे टीसीपी व्यवधान दिखाई देता है।
यह लिंक यह भी बताता है कि TIME_WAIT स्थिति 60 सेकंड है और इसे खरीद के माध्यम से ट्यून नहीं किया जा सकता है।
रैंडम मजेदार तथ्य:
आप प्रत्येक सॉकेट के लिए टाइमस्टैट के साथ टाइमवेट पर टाइमर देख सकते हैंnetstat -on | grep TIME_WAIT | less
पुन: उपयोग बनाम रीसायकल:
ये एक प्रकार के दिलचस्प होते हैं, यह पढ़ता है जैसे पुन: उपयोग time_Wait सॉकेट के पुन: उपयोग को सक्षम करता है, और रीसायकल इसे टर्बो मोड में डालता है:
tcp_tw_recycle - BOOLEAN
Enable fast recycling TIME-WAIT sockets. Default value is 0.
It should not be changed without advice/request of technical
experts.
tcp_tw_reuse - BOOLEAN
Allow to reuse TIME-WAIT sockets for new connections when it is
safe from protocol viewpoint. Default value is 0.
It should not be changed without advice/request of technical
experts.
मैं net.ipv4.tcp_tw_recycle का उपयोग करने की सलाह नहीं दूंगा क्योंकि यह NAT क्लाइंट के साथ समस्या का कारण बनता है ।
हो सकता है कि आप उन दोनों को चालू करने की कोशिश न करें और देखें कि इसका क्या प्रभाव पड़ता है (एक बार में प्रयास करें और देखें कि वे अपने आप कैसे काम करते हैं)? मैं netstat -n | grep TIME_WAIT | wc -l
मुनिन की तुलना में तेज़ प्रतिक्रिया के लिए उपयोग करूंगा ।