Я провожу нагрузочный тест веб-службы SOAP с помощью Jmeter, в режиме без графического интерфейса я начинаю получать ошибки, начиная с 300 потоков. Это было обнаружено с помощью «Утверждения ответа» со следующим правилом: «Тест не пройден: ожидаемый текст не содержит /"rta":"FAIL"/».
В графическом режиме я вижу ошибку нескольких образцов в «Просмотре дерева результатов»:
Ошибка ввода-вывода: сетевой адаптер не смог установить соединение
Моя текущая конфигурация Oracle:
select current_utilization, limit_value
from v$resource_limit
where resource_name='sessions';
Рта:
current_utilization, limit_value
177, 987
Курсоры
select max(a.value) as highest_open_cur, p.value as max_open_cur
from v$sesstat a, v$statname b, v$parameter p
where a.statistic# = b.statistic#
and b.name = 'opened cursors current'
and p.name= 'open_cursors'
group by p.value;
Рта:
highest_open_cur, max_open_cur
241, 4000
Эта ошибка связана с какой-то конфигурацией в базе данных Oracle?
Больше информации: ...
Версия базы данных:
Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production
TNS for 64-bit Windows: Version 12.2.0.1.0 - Production
Настройки Jmeter:
Inter® Xeon® Gold 6126 CPU @2.6 Ghz
4 Sockets, 4 Virtual Processors
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
HEAP=-Xms20G -Xmx20G -XX:MaxMetaspaceSize=128m
Windows Server 2016 Standard
План испытаний:
- Группа потоков (количество потоков 320, период нарастания 37, количество циклов 1)
- 5 HTTP-запросов с 1 утверждением в каждом.
- 1 прослушиватель PerfMon Metrics Collector
решение1
Ошибка выдаетсяДрайвер Oracle JDBCкогда не удается установить соединение с базой данных.
Вотдругой примерчеловека, страдающего от той же проблемы.
Я ожидаю, что ваше приложение не использует должным образомПул соединенийшаблон (или он просто не реализован), поэтому соединения не закрываются после выполнения запроса. Я бы рекомендовал проверить ваше приложение с помощью инструмента профилирования, напримерJProfilerилиВашКомплект- таким образом вы получите более четкое представление о том, что происходит.
Другой способ добраться до сути проблемы — запустить нагрузочный тест базы данных, т. е. выполнить запросы напрямую без промежуточных вызовов API SOAP с помощью JMeter.Запрос JDBCSampler. Таким образом, вы сможете утверждать, что база данных работает нормально, а проблема в приложении Java (или наоборот). СмотритеНастоящий секрет создания плана тестирования базы данных с помощью JMeterознакомиться с концепцией нагрузочного тестирования баз данных с использованием JMeter.