Пример проекта
От сбоя после месяца работы до утечки дескрипторов
Пример анализа сбоя, возникавшего только через месяц работы и сведённого к утечке дескрипторов благодаря продуманным точкам наблюдения и журналам.
Обзор проекта
Приложение для Windows завершалось с ошибкой только примерно через месяц непрерывной работы. Мы начали с организации точек наблюдения, а затем сосредоточили анализ на утечке дескрипторов. Главным результатом стал не только вывод о причине, но и решение, что именно следовало наблюдать в первую очередь.
Симптомы
- Несколько дней система работала нормально; сбой возникал только после длительного запуска
- По форме исключения нельзя было сразу определить наличие утечки
- Явление происходило на рабочем объекте, а на машине разработчика требовалось сократить сценарий воспроизведения
Ограничения
- Ждать месяц при каждой попытке воспроизведения нереалистично
- Повторное подключение камеры и ошибочные пути делали журналы нормального режима недостаточными
- Рост разных видов ресурсов нужно было отслеживать во времени
Что мы наблюдали
- Heartbeat с показателями
Handle Count,Private BytesиThread Count - Границы начала сеанса, повторного подключения и завершения
- Парные журналы жизненного цикла для
create/open/registerиclose/dispose/unregister
Как мы сузили область поиска
Вместо прямого ожидания «сбоя после долгой работы» мы сократили сценарий вокруг повторных подключений и путей ошибок. Наблюдения показали, что утечка дескрипторов вероятнее утечки памяти, и позволили сосредоточить анализ.
Что мы улучшили
- Добавили показатели, которые показывают тенденцию роста до сбоя, а не только состояние в последний момент
- Улучшили журналы границ, чтобы видеть, какая ответственность открыла и закрыла ресурс
- Организовали результаты для последующего использования в базе тестов ошибочных сценариев
Связанные услуги
Этот проект относится к анализу неисправностей и поиску причины для ошибок, возникающих только после длительной работы, и к разработке приложений для Windows, где журналы, повторные подключения и наблюдаемость в эксплуатации улучшаются на уровне реализации.
Свяжитесь с нами
Если содержание этой страницы соответствует вашей ситуации, опишите текущий контекст и необходимый вид поддержки.