Опрос пула соединений IIS / отслеживание утечек - PullRequest
3 голосов
/ 02 октября 2008

За эту полезную статью Я подтвердил, что в каком-то приложении на моем сервере IIS 6 под управлением W2k3 произошла утечка пула соединений.

Сложность в том, что я обслуживаю 300 веб-сайтов, написанных 700 разработчиками с этого сервера, в 6 пулах приложений, 50% из которых - .NET 1.1, который даже не показывает соединения в счетчике производительности CLR Data. Я мог бы наблюдать за ростом соединений с моей стороны, если бы все было .NET 2.0+, но мне даже не повезло с этим тонким инструментом мониторинга.

Мои 300 веб-сайтов подключаются к, вероятно, более 100 баз данных, распределенных между Oracle, SQLServer и выбросами, поэтому я также не могу наблюдать за соединениями со стороны базы данных.

Прямо сейчас мой лучший и единственный план - провести свободный бинарный поиск моих худших преступников. Я убиваю пулы приложений и медленно удаляю из них приложения, пока не найду, какие отдельные приложения приводят к разрыву большинства соединений, когда я уничтожаю их пул. Но поскольку это производственная коробка, и мне нравится постоянная работа, это может занять несколько недель в качестве метода отслеживания.

Кто-нибудь знает способ опроса пулов соединений IIS, чтобы узнать их происхождение или владельца? Есть ли у меня триггер MSMQ, к которому я могу подключиться при их создании? Что-нибудь глупое я пропускаю?

Кевин

(Я включу код ошибки, чтобы другие могли найти ваши ответы с помощью поиска: Исключение: System.InvalidOperationException Сообщение: истекло время ожидания. Время ожидания истекло до получения соединения из пула. Это могло произойти из-за того, что все пулы подключений использовались и был достигнут максимальный размер пула.)

Ответы [ 2 ]

1 голос
/ 16 октября 2008

Попробуйте начать с этой первой статьи Билла Вона .

0 голосов
/ 17 сентября 2011

Тодд Денлингер написал фантастический класс http://www.codeproject.com/KB/database/connectionmonitor.aspx, который следит за соединениями с Sql Server и сообщает о тех, которые не были должным образом удалены в течение определенного периода времени. Подключите его к своему сайту, и он сообщит вам, когда возникнет утечка.

...