За это helpful article Я подтвердил, что у меня есть утечка пула соединений в каком-либо приложении на моем сервере IIS 6 с W2k3.IIS Connection Pool опрос/отслеживание утечки
Жесткая часть заключается в том, что я обслуживаю 300 веб-сайтов, написанных 700 разработчиками с этого сервера в 6 пулах приложений, 50% из которых - это .NET 1.1, который даже не показывает соединения в счетчике производительности CLR Data. Я мог наблюдать, как соединения растут на моем конце, если все было .NET 2.0+, но мне даже не повезло с этим тонким инструментом мониторинга.
Мои 300 веб-сайтов соединяются, вероятно, с более чем 100 базами данных, расположенными между Oracle, SQLServer и outliers, поэтому я не могу смотреть соединения из базы данных.
Прямо сейчас мой лучший и единственный план - сделать бесплатный бинарный поиск для моих худших нарушителей. Я убью пулы приложений и медленно удаляю приложения из них, пока не нахожу, какие отдельные приложения приводят к удалению большинства соединений, когда я убью их пул. Но так как это производственная коробка, и мне нравится продолжать работу, это может занять недели в качестве метода отслеживания.
Кто-нибудь знает способ опроса пулов соединений IIS, чтобы узнать их происхождение или владельца? Есть ли триггер MSMQ, с которым я мог бы подключиться, когда они будут созданы? Что-нибудь глупое я не замечаю?
Кевин
(я буду включать код ошибки, чтобы облегчить другие найти ответы с помощью поиска: Исключения: System.InvalidOperationException Сообщения:. Время ожидания истекло Время ожидания истекло до получения соединения из пула Это могло произойти из-за того, что все объединенные соединения использовались и максимальный размер пула был достигнут.)
Отличная статья. Спасибо. – codepoke 2009-01-07 16:01:34