описание проблемы
Недавно проект проводит тестирование производительности под давлением. Платформа использует Spring Boot 2.1.2 + jedis 2.9.1. 80 одновременных непрерывных испытаний под давлением занимает 4-5 минут, и служба зависает. Все запросы находятся на рассмотрении. Проверьте журнал службы без каких-либо исключения. Убедитесь, что другие интерфейсы, которые не используют Redis, могут нормально запрашивать.
Найдите идеи для проблем
-
Проверил конфигурацию подключения Redis, все в порядке.
-
Затем используйте jstack, чтобы просмотреть информацию о стеке.
Я нашел много потоков WAITING, и, посмотрев вниз, все они ждут, вызванные методом redis getResource.
-
Посмотреть исходный код Redis
Jedis.java
@Override public void close() { if (dataSource != null) { //1 if (client.isBroken()) { this.dataSource.returnBrokenResource(this); } else { this.dataSource. returnResource(this)