Если вы работаете над продуктами, ориентированными на клиента, то вы могли столкнуться с проблемами производства. Для других проблем с производством-это ошибки высокого уровня, которые находятся в производстве и в значительной степени влияют на клиентов.
Затем и их проблема с производством происходит из -за игнорируемого тестового случая, никаких тестовых случаев или экологических проблем и т. Д.
Я следую ниже темам, когда возникает проблема с производством. Эта проблема может быть уведомлена вам либо со стороны вашей команды/поддержки людей/Twitter/других источников.
Проверьте и классифицируйте вопрос того, какой это тип. Проблема обычно принадлежит одной из приведенных ниже категорий.
1) DOS — Люди могут жаловаться, что выпуск 2 -й подключения. Медленный ответ — почти все/определенный тип запросов медленные, что может привести к первому случаю 3) Неправильное поведение — продукт не работает должным образом 4) Проблемы входа в систему — проблемы с сеансами. 5) Высокая частота ошибок — это тихая проблема, о которой знают только разработчики.
Почти у всех организаций будет некоторый инструмент для мониторинга серверов. Если вы новый стартап/продукт, который не использовал ни одного инструмента, это подходящее время, чтобы проверить его.
Проверьте статистику в приведенном ниже заказе
Среднее время транзакции
DOS и медленный запрос. Проверьте, является ли весь запрос медленный или определенный тип. Если все запросы являются медленными, то это проблема с любыми текущими серверами приложений/серверов зависимостей, таких как MySQL, Redis, Kafka и т. Д. Так что проверьте ниже для соответствующей машины
Статус машины
Включая чеки на процессор (> 80%), свободную память (<10%), активные потоки/процесс (> 90%выделенного), запрос времени ожидания перед обработкой (<2S), время GC (если вы используете язык на основе GC> 10S), свободный размер диска (<5%), память кучи (<несколько МБ).
- Если что -то из вышеперечисленного происходит, предпринимайте необходимые шаги ниже.
- Высокий процессор — подождите некоторое время/проверьте потоки/процесс, который занимает много времени. Это всегда будет проблема с кодом или увеличивать размер машины
- Бесплатная память — всегда кодирующая проблема. Проверьте последнее развертывание или увеличение размера машины
- Активные потоки — слишком много активных потоков из -за слишком большого количества запросов были затронуты из -за проблемы с нисходящим/кодом. Проверьте соответственно 5.gc время — ваш код является проблемой. Проверьте журналы, чтобы увидеть, где происходит GC. Получите свалку потока и проверьте его. 6. Бесплатный размер диска — ваш код написал что -то в машине, и он не очищен. Проверьте свой сервер приложений для использования диска папок.
- Память головы — ваш код использовал много объектов и не выяснила.
- Службы зависимости — проверьте вышеизложенное на все услуги, от которых зависит ваше приложение, такие как MySQL, REDIS и т. Д.
Большинство из вышеперечисленных случаев могут быть исправлены, возвращая ваш код.
Журналы (5 — 10 минут)
Если приведенное выше получается с пустыми руками, следите за своими журналами на наличие последних ошибок. Это даст вам обзор или представление о том, что происходит. Если вы используете какой -то инструмент для журнала, используйте панель инструментов для модуля ошибки или региона.
Все вышеперечисленные проверки должны раскрыть все необходимые вещи, необходимые для исправления. Если не обратитесь к экспертам в вашей команде немедленно.
Проверьте, какие области были затронуты проблемой. Если он сталкивается с клиентом, немедленно сообщите о пострадавших клиентах или сильно пострадал клиента. Есть шансы на то, что услуги вниз по течению могут быть затронуты. Проверьте приведенный ниже список и отметьте области, где он был затронут
- DB/Cache/Downstream Services Corruption
- Данные не отправлены вниз по течению
- Репликация задержка
Если это серьезно, исправить проблему, сделав быстрый патч и обновите его весь сервер. Это должно быть твердое и может потребовать одобрения. Если сервер не попробуйте запустить все тестовые покрытия и исправить основную проблему. Для проблем, связанных с нисходящим, напишите сценарий для исправления данных. Если данные полностью повреждены, используйте резервное копирование для восстановления, но требуется забота клиента.
Положите аккуратный RCA и сообщите команде. Запишите тестовые примеры для всех этих сценариев.
Это то, что я следую, что позволяет мне решить проблему в производстве между 10-20 минутами.
* * Если вы следите за хорошей практикой. Дай мне знать. * *
Оригинал: «https://dev.to/vaidhyanathan93/how-to-check-and-fix-production-issue-in-10-minutes-3flm»