Теряется соединение http с мантикорой

Добрый день. Использую подключение http и для команд, и для запросов, мантикора поднята в докере. Заметил, что в какой-то момент сервер перестаёт отвечать по порту 9308.
Postman выдаёт следующее: Error: read ECONNRESET.
При этом клиентом MySql я могу подключиться к базе.
В чём может быть проблема?

И дополнительно, есть ли какой-либо специальный запрос типа ping или healthcheck?

может сервер перегружен и соединение отваливается по таймауту?

А как это можно по логам посмотреть? В консоли ничего такого не пишет.

проверить warning в логе демона

если начались сыпатся http соединения - то зайти mysql клиентом на mysql \ mysql_vip порты и посмотреть вывод

show status;
SHOW THREADS OPTION format=all;
select * from @@system.sessions limit 10000;

Нагрузки около нуля (сейчас всё это дело тестируется на ранних этапах).


Вот логи с демона. Кстати, warning есть, по они скорее всего не о том, хотя если подскажете, что может быть не так, буду благодарен.

Результаты запросов:


Могу ещё конфиги скинуть, если это что-то даст.

так у вас кроме show ХХХ нет никаких запросов

я предлагал это делать когда у вас начнут отваливаться HTTP соединения, вы же писали

что в какой-то момент сервер перестаёт отвечать по порту 9308

Так я прямо сейчас не могу подключиться по http.

а вы можете через api клиента выполнить запрос на тот же порт?

Я использовал и http клиент из .net, и postman.
Вот скриншот из последнего.

Разумеется, я пробовал и search запросы, и sql.

а вы можете через api клиента выполнить запрос на тот же порт?

я попросил подключится через любой API клиент - тк API и HTTP используют один и тот же порт, чтобы понять порт принимает запросы через другие интерфейсы

SphinxConnector подойдёт?

если он через API работает то подойдет, если он через HTTP работает то нет

Через http. Я может не до конца правильно понимаю, но я читал, что подключиться можно либо с помощью mysql клиента, либо через http, либо через клиенты сфинкса, например, но через 9312.
Собственно, вот:

  • port 9306 for MySQL clients
  • port 9308 for HTTP/HTTPS connections
  • port 9312 for HTTP/HTTPS, and connections from other Manticore nodes and clients based on Manticore binary API

Не могли бы вы объяснить, что вы имеете в виду под клиентом?

Внезапно помог перезапуск докера, тем не менее, я до сих пор не понимаю, что это было, и почему оно было.

Вчера обнаружил, что скорее всего причиной было отсутствие ожидания следующего запроса.

То есть после какого-то количества запросов мантикора больше не принимает запросы по http, причём достаточно надолго (ну я перезагружал docker).

Небольшой апдейт по ситуации. Причина полностью не выяснена, однако проблема наблюдается при обращении к мантикоре через localhost либо посредством http клиента .net, либо через postman, в то же самое время curl возвращает ответ.
Обходным путём для решения проблемы на данный момент является использование 127.0.0.1 вместо localhost.

А в select * from @@system.sessions limit 1000 не видно, что накапливаются сессии?

Добрый день. Там только одна строка.

netstat говорит, что по порту 9308 ломится localhost, но по ipv6.
Проблема лечится только перезагрузкой ПК (не мантикоры или докера), при редких запросах работает всё нормально, но когда начинается активная загрузка, где-то через пол минуты через тот же postman ответа нет, при этом в это же самое время curl прекрасно получает ответ.
Складывается ощущение, что это какая-то защита от DDOS встроенная. В любом случае проблема не в мантикоре или докере, а где-то выше.

Ну да. В мантикоре никакой защиты такого плана нет. Я думал, что как-то связано с http keep-alive (тогда мантикора держит connection), но тогда это было бы видно в @@system.sessions.