|
Не могу подключиться к БД после 500-600 запросов
|
|||
---|---|---|---|
#18+
Приветствую! Может, кто знает что за фишка mysql такая. Безуспешно пытаюсь решить проблему - у двух хостеров (mcs.mail.ru и fozzy) она проявляется одинаково , вынес весь мозг поддержке, они решить не могут. Перерыл форумы - ноль результата. Подключаюсь из php с одного хостинга к базе mysql на другом хостинге. Делаю много вызовов, через какое-то время база говорит Connection refused. После снятия нагрузки, через секунды отвисает, типа как ни в чем не бывало. Случается это через 500-550 вызовов, независимо от того, сколько потоков. На 1 потоке работает нормально, что интересно. Скрипт, который бомбит сервер вызовами, держит не более заданного количества потоков, запуская новые только когда предыдущие отработали. На пяти потоках начинает валиться после 550 вызовов; на 125 потоках - тоже примерно через столько же, но по времени раньше, потому что скорость вставки записей выше. Как будто там стоит некий счетчик, типа для защиты от ddos, и начинает валить соединение. Вот здесь можно посмотреть, открыв панель отладки браузера - надо нажать кнопку Сгенерировать записи : Здесь ДБ хостится на fozzy: https://pod.tryint.ru/pod/ Здесь - на mcs.mail.ru https://mcs.tryint.ru/my Тут сделано то же самое, но подключение к localhost и работает без ошибок на любом количестве потоков : https://dev.forthcrm.ru/my То есть, проблема проявляется только если подключение с удаленного хоста, не с localhost. ************ Ещё факты: нагрузка на сервер около нуля по CPU, RAM, потокам. max_connections, max_used_connections и все другие хоть сколько-нибудь связанные параметры менять пробовал - ноль результата. На сервер почти нет нагрузки - ей не дают развиться. НО! При работе с localhost ЦПУ загружается под 100% - php его грузит, видимо это как-то иначе работает, не попадает под эту историю с ограничением в 500 запросов. Прошу помочь, если кто в теме. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2021, 21:59 |
|
Не могу подключиться к БД после 500-600 запросов
|
|||
---|---|---|---|
#18+
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_connections https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_user_connections https://dev.mysql.com/doc/refman/8.0/en/connection-interfaces.html#connection-interfaces-volume-management ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2021, 23:37 |
|
Не могу подключиться к БД после 500-600 запросов
|
|||
---|---|---|---|
#18+
Akina https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_connections https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_user_connections https://dev.mysql.com/doc/refman/8.0/en/connection-interfaces.html#connection-interfaces-volume-management Да, во всех этих местах я был, пробовал - не влияет. Это первое, что мне посоветовала поддержка - поставь, говорит 15-20 тысяч лимит. В процессах болтается не больше 5-15 записей одновременно, потому что сам запрос выполняется несколько миллисекунд, а до прихода следующего проходит ещё 15-30 миллисекунд. Потому и на сервер нагрузка буквально около нуля. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2021, 23:47 |
|
Не могу подключиться к БД после 500-600 запросов
|
|||
---|---|---|---|
#18+
Для сравнения, вот так выглядит вставка 10000 записей в конфигурации с localhost за полторы минуты - используется 20 потоков и 3 раза процессор упирается в планку 100%. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2021, 23:56 |
|
Не могу подключиться к БД после 500-600 запросов
|
|||
---|---|---|---|
#18+
drynny подключение к localhost и работает без ошибок drynny проблема проявляется только если подключение с удаленного хоста, не с localhost ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2021, 09:12 |
|
Не могу подключиться к БД после 500-600 запросов
|
|||
---|---|---|---|
#18+
vkle drynny подключение к localhost и работает без ошибок drynny проблема проявляется только если подключение с удаленного хоста, не с localhost У двух хостеров (mcs.mail.ru и fozzy) проявляется совершенно одинаково. Я вначале думал, что облако mailru меня щемит, но нет - в фоззи тот же порог в 500 записей. Похоже на встроенную защиту от ddos - срабатывает какое-то правило и отрубает злодея по превышении порога активности. Но это должно работать на уровне mysql, потому что только mysql одинаковый у обоих хостеров, остальное сильно различается. Я бегло погуглил - не нашел, чтобы что-то подобное было в mysql (я не особо шарю в этом). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2021, 09:30 |
|
Не могу подключиться к БД после 500-600 запросов
|
|||
---|---|---|---|
#18+
drynny, А на клиентской машине, ОТКУДА подключаетесь к СУБД... Может там какие TCP сокеты остаются гроздьями висеть или что-нить вроде. Касаемо порога активности. Это надо лезть в ПО, которое мониторит порт. Гипотетически, может быть на каком-нить файрволле установлено ограничение в 500 открывающих соединений на порт в единицу времени. Кстати, запросы идут на одном коннекте, или новые открываются? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2021, 10:41 |
|
Не могу подключиться к БД после 500-600 запросов
|
|||
---|---|---|---|
#18+
vkle drynny, А на клиентской машине, ОТКУДА подключаетесь к СУБД... Может там какие TCP сокеты остаются гроздьями висеть или что-нить вроде. Касаемо порога активности. Это надо лезть в ПО, которое мониторит порт. Гипотетически, может быть на каком-нить файрволле установлено ограничение в 500 открывающих соединений на порт в единицу времени. Кстати, запросы идут на одном коннекте, или новые открываются? Там скрипт отрабатывает - делает несколько запросов на выборку, потом кидает в базу пару запросов на изменение, затем завершает работу, закрывая временные соединения. Всё это занимает несколько миллисекунд. Каждый вызов из браузера запускает этот скрипт. Добавлял mysqli_close() - ничего не меняется (и не должно, ИМХО). Вижу, на фоззи заработало - вставилось 2000 записей без проблем. Достал я таки техподдержку, похоже :-). Сейчас, наверное, напишут мне что-то в тикет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2021, 10:54 |
|
Не могу подключиться к БД после 500-600 запросов
|
|||
---|---|---|---|
#18+
drynny, Любопытно, что ответят ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2021, 11:30 |
|
Не могу подключиться к БД после 500-600 запросов
|
|||
---|---|---|---|
#18+
Да почти наверняка подняли глобальный лимит в конфигах - от сессионного хрен ли толку-то (а max_connection так и вовсе global only)? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2021, 11:52 |
|
Не могу подключиться к БД после 500-600 запросов
|
|||
---|---|---|---|
#18+
vkle drynny подключение к localhost и работает без ошибок drynny проблема проявляется только если подключение с удаленного хоста, не с localhost Очень похоже. Ответили, что просверлили прямую дырку между инстансами (они назвали это cpanel). Я не понимаю, как это работало до этого дополнительного действия, и почему валилось после 500 запросов (одинаково на разных хостингах, Карл!). Кроме бредовых мыслей об интеллектуальной динамической маршрутизации мне ничего в голову не приходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2021, 17:15 |
|
Не могу подключиться к БД после 500-600 запросов
|
|||
---|---|---|---|
#18+
drynny Ответили, что просверлили прямую дырку между инстансами (они назвали это cpanel ). До чего техника дошла! (С) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2021, 17:49 |
|
Не могу подключиться к БД после 500-600 запросов
|
|||
---|---|---|---|
#18+
В общем, в fozzy сказали, что блокируется исходящий трафик от PHP-скрипта к базе после ~500 запросов, и они это исправили. Таки пластмассовый мир бредовая версия про интеллектуальную защиту победила. Зря я грешил на mail.ru, пойду извиняться. Зато теперь 300+ отдельных действий в секунду летает на 1 ядре, с перспективой расширения до 1000-1500 в секунду. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2021, 18:39 |
|
|
start [/forum/topic.php?fid=47&msg=40092983&tid=1827973]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
187ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 300ms |
0 / 0 |