В настоящее время я изучаю проблему, в которой мы подозреваем, что одной из причин является исчерпание портов из-за слишком большого количества исходящих соединений. Я хотел бы иметь возможность определить, когда сервер находится на пороге исчерпания или рядом с ним, и кажется, что должен быть какой-то счетчик wmi, который укажет на это, хотя я не знаю, какой
Заранее спасибо.
Чтобы получить текущее количество активных подключений, вы можете Powershell:
$a=gwmi -class Win32_PerfFormattedData_Tcpip_TCPv4 |select ConnectionsEstablished
$a.ConnectionsEstablished
Обратите внимание, что в том же классе есть ConnectionsActive, который отображает совокупное, а не текущее количество подключений. Вот ссылка на класс.
Как подробно описано в это сообщение в блоге MSDN есть две системные настройки, которые вы можете использовать для повышения устойчивости системы, когда исчерпание клиентского порта является угрозой:
[Начать цитату]
Увеличьте верхний диапазон эфемерных портов, которые динамически назначаются клиентским соединениям сокетов TCP / IP.
Найдите и щелкните следующий раздел реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
На Edit
меню, щелкните New
, DWORD Value
, а затем добавьте следующее значение реестра, чтобы увеличить количество эфемерных портов, которые можно динамически выделять клиентам:
Имя значения MaxUserPort
Данные значения <Enter a decimal value between 5000 and 65534 here>
Вы должны перезагрузить компьютер, чтобы это изменение вступило в силу. Увеличение диапазона эфемерных портов, используемых для клиентских TCP / IP-соединений, потребляет память ядра Windows. Не увеличивайте верхний предел для этого параметра до значения выше, чем требуется для подключения сокетов клиентских приложений, чтобы свести к минимуму ненужное потребление памяти ядра Windows.
Уменьшите значение тайм-аута подключения к клиентскому сокету TCP / IP со значения по умолчанию 240 секунд.
Найдите и щелкните следующий раздел реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
На Edit
меню, щелкните New
, DWORD Value
, а затем добавьте следующее значение реестра, чтобы сократить время, в течение которого соединение остается в TIME_WAIT
состояние, когда соединение закрывается. Пока соединение находится в TIME_WAIT
состояние, пара сокетов не может быть повторно использована:
Имя значения TcpTimedWaitDelay
Данные значения <Enter a decimal value between 30 and 240 here>
Вы должны перезагрузить компьютер, чтобы это изменение вступило в силу. Допустимый диапазон этого значения - от 30 до 300 (десятичный). Значение по умолчанию - 240.
[Конец цитаты]