сервере и postgres на другом сервере. Реализован кое-какой API для мобильного приложения, который возвращает json’ы. Иногда (во время большой нагрузки) пользователи мобильного приложения получают не свои данные в ответе на запросы к API (чужой баланс на счету, чужой список предметов etc). Логировали БД, она возвращает все правильно и нормально. Обновляли tomcat (до этого была версия 7+), поэтому проблема, скорее всего, не с ним. Логировали логику веб-приложения, в том числе резолв сессий — тоже все правильно. Подозрения падают на неправильную настройку ядра ОС. Специфика приложения заключается в том, что оно обрабатывает много мелких запросов, поэтому количество сокетов в TIME-WAIT стабильно держится на уровне 100к. Keep-alive отключен на уровне nginx, все запросы идут по HTTP. В конфигах ядра: net.ipv4.tcp_tw_recycle=0, net.ipv4.tcp_tw_reuse=1, net.ipv4.tcp_fin_timeout=60. Кто-нибудь когда-нибудь сталкивался с подобной проблемой?
вы уверены что у вас нигде потоки не пересекаются с оставшимися от старого запроса данными?
а что за приложение? какой сервис? 😊
Обсуждают сегодня