विंडोज सर्वर 2012 आर 2 अल्पकालिक बंदरगाहों से बाहर चलाता है, हालांकि यह नहीं होना चाहिए


13

हम नियमित रूप से अपने समर्पित सर्वर पर नेटवर्किंग के साथ अजीब मुद्दों का सामना कर रहे हैं। यह Xeon E5620 पर 16 जीबी रैम और इंटेल 82575EB नेटवर्क एडेप्टर के साथ विंडोज सर्वर 2012 R2 x64 चलाता है।

कृपया ध्यान दें कि हम पहले से ही देखते गए HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parametersकुंजी मान TcpTimedWaitDelayऔर MaxUserPort30 और 65,530 करने के लिए क्रमशः।

यादृच्छिक समय पर हमारी वेबसाइटें जवाब देना बंद कर देती हैं, इसका कारण यह है कि वे स्थानीय डेटाबेस से कनेक्ट नहीं हो सकते हैं। यह लगभग 2 सप्ताह का समय है जब यह मुद्दे होने लगते हैं। सिस्टम लॉग को TCPIP चेतावनियाँ 4227 और 4231 मिलनी शुरू हो जाती हैं। यह बताता है कि "ऐसे सभी पोर्ट उपयोग में होने के कारण वैश्विक TCP पोर्ट स्पेस से एक पंचांग पोर्ट संख्या आवंटित करने का अनुरोध विफल हो गया है।"

अगर मैं चला

Get-Counter -Counter \TCPv4\*

या

Get-Counter -Counter \TCPv6\*

या

netstat -abn | find /c ":"

मुझे हमेशा 500-1500 कनेक्शन का उचित मूल्य मिलता है, जो कि 65K सीमा के करीब भी नहीं है।

इसके अतिरिक्त, "लोकलहोस्ट" का स्थानीय रूप से हल करना बंद हो जाता है :: 1, स्थानीय स्तर पर 127.0.0.1 पर वापस जाना
केवल एक मजबूर मशीन को फिर से शुरू करने से स्थिति को हल किया जा सकता है।

क्या यह एक नेटवर्क एडेप्टर समस्या हो सकती है?

अद्यतन १

यह फिर से हुआ और मुझे मेल सर्वर को पुनरारंभ करने पर हल हो गया लगता है। अजीब है, हालांकि, सभी काउंटरों ने ~ 1000 कनेक्शनों को ~ 500 के साथ सक्रिय दिखाया, और अभी भी 10055 सॉकेट त्रुटि डेटाबेस से कनेक्ट करने की कोशिश कर रहा है, जिसका मेल सर्वर से कोई लेना-देना नहीं है।

अद्यतन 2 यह अजीब है, लेकिन मेल सेवाओं का दैनिक पुनरारंभ पूरी तरह से समस्या को ठीक करता है।


1
मुझे इसी तरह की समस्या थी और निम्न लिंक ने मेरे लिए इसे तय किया: http://blogs.technet.com/b/kimberj/archive/2012/07/06/sever-quot-hangs-quot-and-ephemeral-port- थकावट-मुद्दे .aspx

2
2 अद्यतन के बारे में। तो यह केवल यह दर्शाता है कि मेल सेवाएँ उन्हें बंद किए बिना बहुत सारे कनेक्शन उत्पन्न करती हैं और आपने समस्या का समाधान नहीं किया है, लेकिन इसे तब तक छिपाएं जब तक कि यह बदतर न हो जाए और प्रति दिन 2 पुनरारंभ होने के लिए कुछ समय की आवश्यकता होगी ... ऐसा लगता है कि हल करने के बजाय छिपाना पसंद है समस्या ...
मिखाइल

जवाबों:


9

मैं लगभग 1 महीने के लिए WinSvr 2012R2 x64 पर टीसीपी / आईपी बंदरगाहों के थका हुआ पूल के साथ समान समस्या थी जहां सर्वर ने किसी भी नए और टीसीपी कनेक्शन प्राप्त करना बंद कर दिया था। इसलिए मैंने रजिस्ट्री मूल्यों के साथ खेला और ये मेरे लिए स्थिर हैं:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"TcpTimedWaitDelay"=dword:0000001e
"MaxUserPort"=dword:0000fffe
"TcpNumConnections"=dword:00fffffe
"TcpMaxDataRetransmissions"=dword:00000005
  • TcpTimedWaitDelay - 30
  • MaxUserPort - 65534
  • TcpNumConnections - डिफ़ॉल्ट अवस्था में अधिकतम = 16777214 तक होना चाहिए, जिससे सर्वर को अल्पकालिक बंदरगाहों को समाप्त करने से रोका जा सके।
  • TcpMaxDataRetransmissions - टीसीपी की समय-सीमा की सीमा वास्तविक डेटा = 5 पर अनजाने डेटा खंडों का पुन: प्रसारण।

परिणाम में भी आपकी तरह। मुझे लगता है कि आपको अपने अनुप्रयोगों / स्क्रिप्ट के प्रदर्शन के अपने व्यवहार का ऑडिट करने पर विचार करना चाहिए। यदि सब कुछ ठीक है और कुछ भी मदद नहीं करता है, तो आप अपने वेब एप्लिकेशन सर्वर से पहले प्रॉक्सी सर्वर डालने की कोशिश कर सकते हैं, वेब सर्वर (IIS, Apache, ...) के साथ 2 नोड्स बना सकते हैं, जो एक ही स्थिर सामग्री को साझा करेंगे और एक ही डेटाबेस को एक्सेस करेंगे। समय (यदि आपकी कंपनी में आपके पास पर्याप्त संसाधन हैं)।

हो सकता है कि यह लेख आपको किसी तरह से मदद करे: http://blogs.technet.com/b/tristank/archive/2008/03/11/maxuserport-what-it-is-what-it-does-when-it- एस important.aspx


1
उत्तर देने से पहले आपको प्रश्न को अच्छी तरह से पढ़ लेना चाहिए। बेशक, मैंने पूछने से पहले इस समाधान की कोशिश की, यह बहुत आम है। मैंने पहले ही समस्या को दूसरे माध्यम से हल कर लिया है।
कैमरोएसएस

1
मुझे लगता है कि मेल सेवाओं का दैनिक पुनरारंभ समस्या हल नहीं है। क्या आपको कोई और उपाय मिला है?
MyKE

3
@CamaroSS: कृपया अपना समाधान साझा करें (यदि यह "मेल सेवा को फिर से शुरू करने से परे है" - यह समाधान नहीं है)। इसके अलावा, हो सकता है कि आपको इसकी थोड़ी और सराहना करनी चाहिए अगर कोई आपकी मदद करने की कोशिश करता है।
स्वेन

@CamaroSS और यदि आप मेरे जवाब को ध्यान से पढ़ते हैं, तो आप "आपके जैसे परिणाम में" देखेंगे, तो मैंने एक और जानकारी पोस्ट की है ..
MyKE

1
क्या MaxUserPort2012 में अभी भी सेटिंग काम कर रही है? मैंने सोचा था कि 2012 में आपको इसे नेट्स के जरिए करना होगा। उदाहरण:netsh int ipv4 set dynamicport tcp start=25535 num=40000
रस्टेक्स

4

Tcpip ड्राइवर सेटिंग्स के अलावा, nhehh कमांड ( स्रोत ) का उपयोग करके विंडोज सर्वर में ephemeral TCP पोर्ट रेंज का प्रबंधन किया जाता है ।

आप निम्न कमांड के साथ डायनेमिक पोर्ट रेंज देख सकते हैं :

  • netsh int ipv4 show dynamicport tcp
  • netsh int ipv4 show dynamicport udp
  • netsh int ipv6 show dynamicport tcp
  • netsh int ipv6 show dynamicport udp

करने के लिए बदलने के पोर्ट श्रेणी, इस आदेश का उपयोग करें:

  • netsh int <ipv4|ipv6> set dynamic <tcp|udp> start=number num=range

उदाहरण के लिए:

netsh int ipv4 set dynamicport tcp start=49152 num=16384

सेटिंग (प्रारंभ = 49152 संख्या = 16384 ) भी विंडोज सर्वर 2008 के बाद डिफ़ॉल्ट है


इसके लिए आपको बहुत धन्यवाद - मैंने अपनी समस्या को हल करने की कोशिश में पहले ही घंटों लगा दिए हैं। मुझे जो भी सलाह मिल सकती थी वह रजिस्ट्री में MaxUserPort को समायोजित करने के बारे में थी और किसी ने netsh का उल्लेख नहीं किया था।
milosz

3

विंडोज सर्वर 2016 पर यही मुद्दा था कि क्रोमेएब्रिडाइवर का उपयोग करके बड़ी मात्रा में सेलेनियम परीक्षण चल रहा था। यह PS स्क्रिप्ट स्वचालित रूप से ऊपर साझा की गई @Myke सेटिंग्स को कॉन्फ़िगर करेगी। shutdownआदेश में जोड़ा गया था क्योंकि एक रिबूट टीसीपी ढेर परिवर्तन के लिए आवश्यक है।

पंचांग टीसीपी पोर्ट के लिए पूल का आकार बढ़ाएं

Get-Item 'HKLM:\System\CurrentControlSet\Services\Tcpip\Parameters' | New-ItemProperty -Name MaxUserPort -Value 65534 -Force | Out-Null
Get-Item 'HKLM:\System\CurrentControlSet\Services\Tcpip\Parameters' | New-ItemProperty -Name TcpTimedWaitDelay -Value 30 -Force | Out-Null
Get-Item 'HKLM:\System\CurrentControlSet\Services\Tcpip\Parameters' | New-ItemProperty -Name TcpNumConnections -Value 16777214 -Force | Out-Null
Get-Item 'HKLM:\System\CurrentControlSet\Services\Tcpip\Parameters' | New-ItemProperty -Name TcpMaxDataRetransmissions -Value 5 -Force | Out-Null

shutdown -r -t 0

यह त्रुटि संदेश था जो Webdriver.Quit()हमें यह बताने पर मिल रहा था कि एक टीसीपी पता उपयोग में था।

त्रुटि : EADDRINUSE EADDRINUSE 127.0.0.1:12843 को ClientRequest पर कनेक्ट करें। (\ n नोड_मॉड्यूल्स \ सेलेनियम-वेबड्राइवर \ http \ index.js: 238: 15)
से : कार्य: वेबड्राइवर.क्विट ()


1

क्या आपने सुनिश्चित किया है कि आप डेटाबेस कनेक्शन ऑब्जेक्ट्स को लीक नहीं कर रहे हैं? आपको खोले गए प्रत्येक डेटाबेस कनेक्शन को बंद करना होगा, या तो स्पष्ट रूप से (कोशिश के साथ) या {} ब्लॉक का उपयोग करके। यह एक सामान्य समस्या है जिसके बारे में ASP आपको सीधे नहीं बताएगा।


यह PHP साइटों का एक समूह है, उनमें से अधिकांश लगातार कनेक्शन का उपयोग करके FastCGI के माध्यम से चल रहे हैं, इसलिए ऐसा नहीं होना चाहिए। यदि ऐसा होता, तो सिस्टम काउंटर उच्चतर मूल्यों को वापस कर देते। मैं यह भी नहीं बता सकता कि लोकलहोस्ट अचानक :: 1 पर हल करने के लिए क्यों रुकता है और इसके बजाय 127.0.0.1 हल करता है।
कामाक्रॉस

2
:: 1 गायब होना संभवतया स्वीकार्य बंदरगाहों को ओवरफ्लो करने का एक साइड इफेक्ट है - मुझे संदेह है कि विंडोज़ एक आईपीवी 6 पिंग की कोशिश करती है और जब इसे प्रयास करने के लिए पोर्ट नहीं मिल सकता है, तो यह वापस आईपीवी 4 पर गिर जाता है। PHP विशेषज्ञता के मेरे क्षेत्रों के बाहर है। :-(। सौभाग्य!
जेम्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.