У нас было несколько экземпляров в день, где мы получаем множество ошибок таймаута SQL из нескольких приложений (System.Data.SqlClient.SqlException: время ожидания истекло. Период ожидания истекает до завершения операции или сервера не отвечает.) У нас более 100 различных приложений в нашей сети, как для веб-приложений, так и для настольных приложений. Все от VB6 и классического ASP до .NET 4. Я могу найти все виды данных, которые показывают побочные эффекты, но не может точно определить, что вызывает это. Наш администратор базы данных говорит, что с сервером SQL ничего не происходит, и ИТ говорит, что нет ничего плохого в веб-серверах или сети, поэтому, конечно, я остался посередине, пытаясь устранить эту проблему.
Я действительно ищу предложения о том, какие другие способы устранения неполадок я могу сделать, чтобы попытаться отследить это.
Мы запускаем SQL Server 2008 R2 в кластере. Там есть несколько различных серверов, которые подключаются к нему, начиная от Windows Server 2003 до 2008 различных вариантов.
Вот что я сделал до сих пор:
- Запустите SQL-трассировку длинных запросов и тупиков. Это не показывает взаимоблокировки во время проблем, а длинные запросы совпадают с нашими ошибками таймаута, но выглядят побочным эффектом, а не причина. Запросы, которые являются очень базовыми, которые обычно возвращаются, мгновенно заканчиваются тем, что время от времени запускается 30, 60 или 120 секунд. Это происходит в течение нескольких минут, после чего все подбирается и прекрасно работает после этого.
- Использовать монитор производительности для отслеживания соединений пула соединений. Это иногда показывает некоторые всплески количества подключений в период времени, равный таймаутам, но все же даже не на полпути к пределу связи 100 по умолчанию. Опять же, ничего здесь, кажется, не указывает на причину.
- Разделяйте веб-приложения в разных пулах приложений. Мы попытались сузить приложения, которые, по нашему мнению, могут быть основной проблемой (большинство болтовней и т.д.) и поместить их в отдельные пулы приложений, но это не похоже, влияют на что-либо или помогают нам сузить что угодно.
- Мониторинг использования диска на SQL Server. Мы провели некоторый мониторинг на сервере SQL и не видим всплесков или каких-либо признаков проблем при возникновении этих тайм-аутов.
- Verified TempDB не был причиной проблемы.
Я вернусь и добавлю больше, если я подумаю о том, что еще мы пробовали. Пожалуйста, дайте мне знать некоторые идеи о том, что следует устранить после.