Мы выбрали два сценария для теста: установили число параллельных потоков на 10 и 40, а затем сравнили результаты.< /p>
Результаты тестирования были записаны с использованием асинхронной выборки как для представлений JPA, так и для представлений HTTP-сервера.
Мы сделали несколько открытий:
- Загрузка ЦП показала существенную разницу: при 10 потоках она колебалась в пределах 15–30 %, а при 40 потоках — в пределах 40–70 %.
(Изображение показывает результаты выполнения одного и того же стресс-теста четыре раза) И сервер настроен с 1 ядром ЦП.


- При сравнении 10 и 40 потоков время, затраченное на выполнение потока, примерно одинаково, независимо от того, наблюдается ли оно в представлениях JPA. или представления HTTP-сервера.

Просмотр HTTP-сервера
[img]https:/ /i.sstatic.net/XWrj0O2c.png[/img]
- В обоих сценариях тестирования Net I/O требует времени, но 40 потоки занимают больше времени, чем 10 потоков, независимо от того, наблюдаются ли они в представлениях JPA или представлениях HTTP-сервера.

Вид HTTP-сервера

- Когда количество потоков равно 10, время ожидания потока отсутствует, но есть время ожидания потока, когда оно равно 40, независимо от того, наблюдается ли оно в представлениях JPA или представлениях HTTP-сервера.

Просмотр HTTP-сервера

Я сослался на следующие ресурсы (проблема относится к более ранней версии JProfiler):
- java. Что на самом деле означает состояние Jprofiler9 NetIO? - Stack Overflow
Он отслеживает сетевые вызовы. Это могло бы быть частью состояния ожидания, но это было бы менее полезно. - В этом состоянии потока обычно наблюдается низкая загрузка ЦП.
В ответе объясняется, что состояние потока Net I/O должно включать операции с низкой нагрузкой на процессор. Это верно? И является ли состояние потока ожидания также операцией с низкой нагрузкой на ЦП?
Если оба верны, это означает, что ЦП должен использоваться в другом месте, например, в состоянии работоспособного потока (с блочным потоком время приближается к нулю, я думаю, его можно игнорировать).
Так почему же существует такая большая разница в использовании ЦП между 10 и 40 потоками, хотя время выполнения потока примерно одинаковое? ?
Спасибо всем за потраченное время и помощь!
Подробнее здесь: https://stackoverflow.com/questions/785 ... pu-load-is