Высокое изменчивое время отклика API

#java #performance #rest #optimization #time

#Ява #Производительность #остальное #оптимизация #время

Вопрос:

У меня есть API, написанный на Java и spring boot. Время отклика очень важно для конечных пользователей. Среднее время работы API составляет lt; 1 sec . Проблема возникает, когда 10% звонки дают высокое время отклика gt; 3 sec . Вот график, взятый из Кибаны- Распределение времени по количеству звонков

Я проверил графики JVM, они выглядят согласованными. Никакого скачка в использовании процессора, памяти или количестве потоков. API просто делает 2-3 вызова базы данных, размер ответа почти фиксирован. Итак, есть идеи, в чем может быть причина этого и как я могу обеспечить согласованность времени отклика?

Комментарии:

1. Я думаю, вам нужно разбить его еще глубже и выяснить, где вы теряете время, когда вы это делаете. Тогда вы, возможно, сможете понять причину этого.

2. Если честно, 1 секунда уже кажется большим временем. Трудно сказать, не зная больше о вашей настройке, и устранение неполадок в сложных системах, подобных этой, вероятно, выходит за рамки переполнения стека.

3. Существует несколько способов устранения неполадок. Я бы начал с использования приличного профилировщика в вашем приложении, чтобы выяснить, где находятся горячие точки.

4. Какой тип API вы закодировали? В некоторых случаях Websocket это отличная альтернатива, потому что здесь у вас более низкая задержка, и вы можете сами решить, с какой скоростью вы хотите выполнять свои запросы