Когда я запускаю netstat, я получаю следующее:
TCP xxxx:65524 65.55.11.162:80 TIME_WAIT 0
На данный момент в netstat имеется 13941 такая строка.
Сервер работает под управлением Windows 2008 и SQL Server 2008.
Диспетчер задач и обозреватель процессов ничего странного не показывают. Время безотказной работы сервера, вероятно, составляет пару месяцев.
Есть идеи, что может быть причиной?
TIME_WAIT
- это состояние TCP, используемое для обеспечения полного закрытия соединения. Потому что последний пакет с надписью «Я готов!» может быть сброшен, TCP-соединения ждут в течение некоторого времени, если другой конец попытается отправить что-то еще до того, как фактически переключиться на CLOSED
штат.
Похоже, что ваш сервер быстро открывает и закрывает соединения с 65.55.11.162
веб-сервера, быстрее, чем задержка для TIME_WAIT
позволяет серверу закрывать соединения и выгружать сокеты. В зависимости от ресурсов, доступных вашему серверу, это может привести к исчерпанию доступных сокетов или памяти и вызвать проблемы с производительностью. Если вы не видите никаких проблем с производительностью, я просто буду следить за этим; соединения должны истечь через несколько минут. Если проблема не исчезнет, рассмотрите возможность изучения конфигурации исходного приложения. Ты можешь использовать netstat
чтобы отобразить, какой процесс / PID владеет сокетом (netstat -p
на моем Linux-сервере, может быть не то же самое в Windows2008).
Изменить: Дальнейшее расследование предполагает, что это связано с "Telligent Community". Это приложение, которое вы установили в своей системе?
Есть идеи, что может быть причиной?
Интернет-сервер? Вы когда-нибудь думали об Интернете? IIS основан на TCP. У Дарта Андоида есть техническое объяснение. Причиной могут быть пауки.
SQL? Множество открытых / закрытых соединений и отсутствие пула соединений.
Оказалось, что это проблема Amazon EC2 - иногда хост-машина сообщала время через несколько лет в будущем, из-за чего сокеты не выходили из строя и не очищались. Это было исправлено и больше не проблема.