Ошибки EOF в Spring Boot под нагрузкой с традиционными и виртуальными потоками (Vegeta) [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ошибки EOF в Spring Boot под нагрузкой с традиционными и виртуальными потоками (Vegeta) [закрыто]

Сообщение Anonymous »

Spring Boot + Vegeta: ошибки EOF и пропускная способность ниже ожидаемой под нагрузкой (традиционные и виртуальные потоки)
Я провожу нагрузочное тестирование API Spring Boot, созданного только для целей сравнительного анализа.

Этот API не выполняет никакой реальной работы — он просто блокирует каждый запрос на 100 мс, а затем возвращает ответ.
Несмотря на это, я нарушаю ограничения пропускной способности и получаю ошибки, которые не могу полностью объяснить.

Среда
  • Сервер: macOS (Apple M2), 8 ГБ ОЗУ

    Spring Boot 3.x
  • Java 21
[*]Клиент: машина Intel i5, генерирующая нагрузку
[*]Сеть: Локальная сеть (очень низкая задержка)


Цель теста
  • Выполнить 5000 запросов за 10 минут с использованием Vegeta
  • Сравнение поведения сервера с использованием:

    традиционных потоков
  • виртуальных потоков (Project Loom)


Наблюдается Поведение
  • Я могу обработать только около 3000 запросов за один и тот же 10-минутный интервал.
  • Многие запросы завершаются ошибками EOF, например:
GET http://192.168.1.16/threads/traditional
: EOF
  • Сам API не дает сбоев
  • Ограничение, по-видимому, связано с:

    Обработкой потоков
  • Конфигурацией JVM
  • Ограничениями встроенного сервера Spring Boot
  • Обработкой соединения при постоянной нагрузке


Команда Vegeta

Код: Выделить всё

echo "GET http://192.168.1.16/threads/traditional" | vegeta attack -duration=10m -rate= | vegeta report
Вопросы
  • Кто-нибудь сталкивался с ошибками EOF при нагрузочном тестировании API Spring Boot с Vegeta?
  • Может ли это быть связано с:
    • традиционными и виртуальными потоками
    • Соединением ограничения на встроенном сервере (Tomcat/Netty)
    • Настройка JVM или уровня ОС?
  • Какие изменения (конфигурация Spring Boot, флаги JVM или параметры Vegeta) необходимы для надежного достижения 5000 запросов за 10 минут, учитывая, что каждый запрос блокируется для 100 мс?
  • Каковы хорошие способы мониторинга потоков и открытых соединений для выявления фактического узкого места?
Будем очень признательны за любую информацию или советы по настройке.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/798 ... ads-vegeta
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»