Самое сложное - это познать себя!
персональный сайт, Добро пожаловать в гости!
Предисловие:
В последнее время время отклика определенной службы интерфейса в онлайн-среде было слишком большим, что приводило к ухудшению взаимодействия с пользователем.Как быстро устранить такие проблемы?
① Добавьте в код подробный журнал печати;не предлагается, одна из них - онлайн-среда, и невозможно повторно развернуть и заменить код подробным журналом, а другой - добавить подробный вывод журнала, что означает, что будет создано большое количество файлов журнала, и эти файлы журнала будут занимают много места на диске сервера.
② Создайте тестовую среду, которая имитирует онлайн-среду для проверки и расследования; э-э, если есть такая проблема, как у вас может быть столько времени для проведения экологической проверки и расследования, поэтому это решение такжене рекомендуется.
③, артефакт онлайн-диагностикиArthas, этот инструмент с открытым исходным кодом от Alibaba и специально используется для устранения неполадок в онлайн-среде.Этот инструмент предоставляет множествоЗаказИспользуется для устранения неполадок; когда вышеуказанное время отклика слишком велико, вы можете использовать ArthastraceИспользуйте команду trace этого инструмента, чтобы подсчитать все накладные расходы на производительность и проследить ссылку вызова всей цепочки вызовов в методе, найти метод, который занимает много времени, а затем подробно проверить его.
Статья будет расширяться с двух аспектов:
①, аналоговый для создания интерфейса онлайн-сервисного сервиса довольно долгого времени отклика; Springboot Service Service Service + Service Service Service Service Service Service Calles;
②, используйте команды, предоставляемые диагностическим артефактом ArthastraceУстранение проблем с длительным временем отклика на команды;
Смоделируйте онлайн-среду:
1. Соберите проект SpringBoot и напишите интерфейс службы;
Примечание. Код интерфейса службы написан только для простоты.какой-то большой циклический кодмоделировать долго, кроме того, есть на самом деле много других распространенных ситуаций, таких как:
① существует множество методов интерфейса службыJDBC-операции, а поскольку объем данных в базе данных слишком велик, многие запросы JDBC занимают очень много времени, и в это время запрос может выполняться дольше, поскольку соответствующий индекс не был создан, и, в конечном итоге, время отклика службы интерфейс слишком длинный;
②, этот сервисный интерфейс называетсяДругие сервисные интерфейсы, из-за проблем с другими сервисными интерфейсами, вызываемыми внутри, выполнение этого другого сервисного интерфейса занимает много времени, что, в свою очередь, приводит к длительному времени отклика сервисного интерфейса;
Код интерфейса службы выглядит следующим образом:
Методы test1 и test2 следующие:
2. JMeter имитирует конфигурацию тестового сценария, вызванную пользователем:
3. Расположение проекта сервисного интерфейса кода SpringBoot и тестового скрипта JMeter:
После того, как код интерфейса службы будет готов, экспортируйте его в виде пакета Jar с помощью средств разработки IDEA.
Код интерфейса сервиса и скрипт JMeter получают адрес:GitHub.com/ Тор 6/ продажа билетов...
Для того, чтобы смоделировать максимально реалистичную онлайн-среду, вам необходимо поставить на сервер готовый Jar-пакет сервисного интерфейса, а затем использовать команду *java -jar .jarЗапустите пакет Jar, затем используйте JMeter для вызова интерфейса вСводные отчетыОбнаружено, что среднее время отклика слишком большое, как показано на рисунке:
Если некоторые пользователи сообщают, что время отклика определенной функции слишком велико, не беспокойтесь и проверьте следующие методы, это абсолютно удобно и быстро найти причину проблемы.
Устранение неполадок Артаса:
1. Во-первых, вам необходимо загрузить Jar-пакет диагностического инструмента Arthas с открытым исходным кодом с сайта Ali по адресу:arthas-boot.jar; затем поместите пакет Jar вНа сервере, где развернут проект интерфейса службы.
2. Затем используйте команду ps, чтобы запросить номер процесса программы, в которой в данный момент запущен сервисный интерфейс, например: имя пакета Jar программы сервисного интерфейса, смоделированного в этой статье, — springboot_arthas-1.0.0.jar , поэтому команда:ps -ef | grep springboot_arthas-1.0.0.
3. Затем запустите средство диагностики Arthas, команда: java -jar arthas-boot.jar, интерфейс для запуска показан на рисунке:
На этом этапе диагностический инструмент еще не закончил работу, вам нужно вручную выбрать процесс Java для диагностики/мониторинга, и этот инструмент также выведет список всех номеров процессов Java, вам нужно только ввести их первый серийный номер.[1]Можно, как показано на рисунке:
4. После запуска вы можете использоватькоманда трассировкиКонтролировать потребление времени другими методами, вызываемыми в методе интерфейса службы;
trace
команда может активно искатьclass-pattern
/method-pattern
Соответствующий путь вызова метода отображает и подсчитывает все издержки производительности и отслеживает цепочку вызовов во всей цепочке вызовов.
Конкретный формат команды: trace [полное имя класса] [имя метода в классе]
Например: контролировать этот сервисный интерфейс;
com.lyl.controller.TestController: полное имя класса, процесс: метод в классе TestController;
Конкретная команда:trace com.lyl.controller.TestController process
5. Отображается результат выполнения команды трассировки, как показано на рисунке:
Через команда Trace для мониторинга времени выполнения каждого способа ссылки на вызов можно найти, что метод TEST2 () в классе COM.LYL.UTIL.STRINGUTIL, который называется, требует длительного времени для выполнения; следовательно, это Необходимо проверить, является ли код этого метода в частности, потребляющий время. Есть проблема; если в этом коде есть множество ссылок на вызов метода, необходимо еще раз использовать команду трассировки для мониторинга времени потребляемой ссылки на звонок И выясните конкретный метод, который может иметь проблемы.
Диагностический инструмент Артаса Али с открытым исходным кодом также предоставляет множество команд для использования, которые вы можете проверить и изучить, адрес:список команд.
Уведомление:
①、Использование программного кода, диагностированного Arthas, при упаковкене путать, иначе команда трассировки сообщитКласс или метод не найден;
2. При использовании команды трассировки для наблюдения за статистикой необходимо запустить тестовый скрипт JMeter для вызова сервисного интерфейса, если он не вызывается, не может быть засчитана трудоемкая ситуация внутренней ссылки вызова;
Из-за моего ограниченного уровня, если у вас есть какие-либо вопросы, пожалуйста, спрашивайте;
♡ Не забудьте оставить следы своего обучения [Нравится + Избранное + Комментарий] Привет ヾ
Все читающие статьи без лайков - "хулиганы", хе-хе ヾ(◍°∇°◍)ノ゙! Шучу, пошевелите ручкой, поставьте лайк и все готово, каждый из вас вносит свой вклад (лайк+комментарий), и все больше учеников присоединятся! большое спасибо!  ̄ω ̄=