Аватар для licoric
1 / 1 / 1
Регистрация: 11.05.2012
Сообщений: 63

Debian, ISP, начал ловить ошибку базы данных "too many connections"

28.02.2025, 11:57. Показов 794. Ответов 9

Author24 — интернет-сервис помощи студентам
Уж и не знаю в каком разделе тему лучше создать.

Имею сервак, на нем ispmanager (hosting), debian, пет-проекты. Начал ловить ошибку базы данных "too many connections". И из-за этого отваливается весь mysql на сервере (все проекты сидят в своих базах под своими пользователями).

Когда первый раз словил такую приколюху, то начал смотреть htop (подключался через терминал) - видел много одинаковых кроном запущенных файлов. Полез смотреть код - убрал параллельные запуски, добавил отключение от базы, где не было. В общем провел некую ревизию. Все работало неделю и сейчас и снова пошел отвал базы.

Вопрос к опытным гуру. Можно как-то диагностировать, откуда выстрел в ногу идет? Проекты не шибко большие (по нагрузке на базу или пользователей). То есть "коммерческой" посещалки вообще нет.

За сегодня:
Debian, ISP, начал ловить ошибку базы данных "too many connections"


За неделю:
Debian, ISP, начал ловить ошибку базы данных "too many connections"


Как база ложится, то нагрузка на проц падает до нуля. Ребут помогает - неделю норм было и я думал, что поборол недуг. А сегодня опять все вернулось.
Отключать код частями не вариант - ошибка очень спонтанная как я вижу.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.02.2025, 11:57
Ответы с готовыми решениями:

Начал изучать базы данных в Microsoft SQL Server. вывод таблицы в консоль
У меня есть база данных, есть табличка, где есть строки и столбцы, заполненные информацией. эта табличка отображается только в Майкрософт...

Backup VPS/VDS на Debian via ssh, включая весь софт, базы данных и др
Добрый день, уважаемые. Нужно ваше мнение по одному вопросу, поскольку сам я в линуксах не силен. И так, имеется ВПС с дебиан и...

Ловить ошибку в браузере
Добрый вечер Требуется написать скрипт, который будет автоматически - качать файл исключительно через Хром (другие браузеры не...

9
 Аватар для yoric
14 / 14 / 2
Регистрация: 02.12.2021
Сообщений: 122
28.02.2025, 19:02
А в логах покопаться?
0
Native x86
Эксперт Hardware
 Аватар для quwy
6443 / 3547 / 992
Регистрация: 13.02.2013
Сообщений: 11,231
28.02.2025, 19:33
Bash
1
echo 'show processlist;' | mysql
что показывает?
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13376 / 7504 / 824
Регистрация: 09.09.2009
Сообщений: 29,335
28.02.2025, 20:24
можно попробовать воспользоваться утилитой MySQLTuner и посмотреть, что будет писать в своих рекомендациях
https://github.com/major/MySQLTuner-perl
0
 Аватар для licoric
1 / 1 / 1
Регистрация: 11.05.2012
Сообщений: 63
02.03.2025, 10:15  [ТС]
Цитата Сообщение от yoric Посмотреть сообщение
А в логах покопаться?
не совсем понимаю в каких именно.
В журналах WWW-запросов?
0
 Аватар для yoric
14 / 14 / 2
Регистрация: 02.12.2021
Сообщений: 122
02.03.2025, 19:57
Цитата Сообщение от licoric Посмотреть сообщение
не совсем понимаю в каких именно.
Во всех, конкретно не скажу
0
202 / 116 / 34
Регистрация: 25.07.2021
Сообщений: 447
10.03.2025, 21:28
too many это сколько?
нужно в следующий раз как только пойдут ошибки зайти в базу и посмотреть что за процессы висят.
phpmyadmin если есть, то в нем вкладка "состояние" -> "процессы"
или по ssh запустить mysql и там
Code
1
show processlist;
или
Code
1
show full processlist;
в чем конкретно у вас проблема тут знать никто не может, заходите и смотрите.
вариантов масса.
например если открыт (зачем?) порт наружу, то могут быть попытки брутфорса.
возможно очень долгие тяжелые запросы висят.
возможно скрипты какие-то долгие выполняются и подключаясь к базе не завершают сеансы - так и висит все в ожидании.

ну и глянуть стоит
Code
1
show variables like 'max_connections';
возможно ничего криминального не происходит, а вы недоговариваете как много там всего обращается к базе и нужно банально увеличить лимит количества подключений.

Цитата Сообщение от licoric Посмотреть сообщение
все проекты сидят в своих базах под своими пользователями
и что?
ладно бы вы осилили несколько копий mysql серверов запущенных.
чтоб каждому проекту действительно отдельная база была, полностью независимая от соседних "проектов", со своей памятью, кэшами.
а так ведь база одна на всех и если кто-то/что-то ее положит - базы не будет у всех.
0
 Аватар для licoric
1 / 1 / 1
Регистрация: 11.05.2012
Сообщений: 63
14.03.2025, 21:02  [ТС]
Цитата Сообщение от EvgenUA Посмотреть сообщение
ладно бы вы осилили несколько копий mysql серверов запущенных.
чтоб каждому проекту действительно отдельная база была, полностью независимая от соседних "проектов", со своей памятью, кэшами.
а так ведь база одна на всех и если кто-то/что-то ее положит - базы не будет у всех.
Собственно в это и уперся. Мне чуть ранее казалось, что если ляжет одна база, то ляжет одна база, а не весь сервер. А прилег весь сервис mysql, а не одна база какая-то
Спецом сделал буквально на днях "анализ" запросов. Начало-конец работы скрипта. Может наслоение есть где друг на друга. Пока так. Вновь жду "приход" отвала базы.
0
 Аватар для Andrey-MSK
3143 / 2041 / 373
Регистрация: 14.08.2018
Сообщений: 6,709
Записей в блоге: 4
21.03.2025, 16:27
Цитата Сообщение от EvgenUA Посмотреть сообщение
а так ведь база одна на всех и если кто-то/что-то ее положит - базы не будет у всех.
Базы разные. Сервер MySQL один, который обслуживает эти базы.
0
202 / 116 / 34
Регистрация: 25.07.2021
Сообщений: 447
21.03.2025, 19:02
да, под базой имел в виду именно mysql сервер.
и количество подключений, про которое тут речь идет, оно общее на все базы внутри сервера этого.

ну в общем все решаемо.
1) найти от чего так много подключений висит. это баги скриптов или же норма.
если норма, то:
2) увеличить max_connections
а в идеале и при желании:
3) можно несколько копий именно mysql серверов запустить.
например разделить по проектам или по базам. 1 база = 1 сервер

это кстати одна из причин почему многие считают, что на vps лучше.
там у тебя собственный mysql сервер, а не как на shared'е один общий с соседями.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.03.2025, 19:02
Помогаю со студенческими работами здесь

Не могу заставить RegexValidator ловить ошибку
Django 3.1.7 class RenderedCssFile(models.Model): css_pattern = r".*-\d+\.css$" regex_validator =...

Как устранит ошибку базы данных?
Приветствую. В общем использую для локальной разработки Open server. В нем как вы знаете можно устанавливать разные версии php и баз...

Исправить ошибку, C# интерфейс подключенной базы данных
Нужно создать интерфейс моей базы из sql server, таблицы выводятся, запросы тоже, но обновление/удаление/изменение не работает. Помогите...

Не понимаю ошибку при использовании базы данных
Всем привет System.Data.SqlClient.SqlException: 'Login failed for user 'userid'.' Такая ошибка This exception was originally...

Не могу понять ошибку в обновление базы данных
<? include ("bd.php"); $title = stripslashes(trim(htmlspecialchars($_POST,ENT_QUOTES))); $desc =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru