Ограничение количества подключений

  • Автор темы Автор темы agx
  • Дата начала Дата начала

agx

Программер :-)
Ограничение количества подключений

Доброго времени суток! :-)
Чем практически огранично максимальное количество одновременно открытых подключений к MySQL, и вообще, есть ли такое ограничение? Тоесть, я знаю, что можно задать значение переменной max_connections, но есть ли какие-то ограничения на максимальное ее значение?
К примеру, если мне требуется обеспечить возможность одновременной установки 1000-и подключений, это возможно? MySQL такое потянет?
Тема звучит малость глуповато, наверное, но все же... заранее спасибо!
 
agx
Максимальное число соединений MySQL зависит от того, насколько хорошей является библиотека потоков на данной платформе. Linux или Solaris должны быть в состоянии поддерживать 500-1000 одновременных соединений, в зависимости от количества имеющейся памяти и того, чем занимаются клиенты.
 
alpine
Сервер работает под windows 2003 server...
Тоесть, нужно проверять на практике, как я понял? Может, есть какие-то утилиты для тестирования?
 
agx
У тебя mysql работает отдельно или в связке с (apache | IIS)?
 
> если мне требуется обеспечить возможность одновременной установки 1000-и подключений, это возможно?

да, но это в большей степени зависит от лимитов твоей системы, железа.
 
alpine
В связке с Apache 1.2

-~{}~ 06.12.05 13:16:

Апельсин
А что произойдет, если производительности железа не хватит? Будут возникать ошибки подключения, или все просто будет работать медленно? Или вообще будет нестабильно работать?
 
agx
Тебе нужно тестировать не базу а вообще всю связку apache+php+mysql на ожидаемую максимальную нагрузку и почему ты уперся в mysql и и количество подключений я не понимаю. imho
 
alpine
Просто проблема возникла с одним форумом: при количестве одновременно вошедших посетителей в районе 700 человек (предположительно использовались постоянные подключения) MySQL выдавал ошибку связи. Те товарищи вышли из положения, перейдя на Постгрей. Вот я и подумал, неужели средствами MySQL нельзя было решить эту проблему?

Так или иначе, всем спасибо! :-)
 
> А что произойдет, если производительности железа не хватит?

на 32-битной машине где на процесс у вас не больше 2GB памяти у вас 1000 одновременных соединений в принципе жить нормально не смогут, т.к. каждому соединению будет нужен определенный объем + та память которая выделяется при старте на все потоки.
Ну т.е. если к этим 1000 открытым соединениям предполагается еще и какая-то нагрузка, то вероятность выйти за пределы этих 2GB совсем не нулевая.
 
Апельсин
Спасибо за информацию.
Думаю, нужно просто грамотне организовывать взаимодействие с сервером MySQL, своевременно закрывая созданные соединения так, чтобы обходиться максимум двумя-тремя сотнями одновременно существующих соединений при пике посещаемости.
 
Всем здравствуйте.
AGX не совсем верно описал проблему. На сервере стоит не Win2003, а FreeBSD. Это первое. Второе - проблема была именно в подключении к базе. После перехода на Постгрей такая проблема отпала, несмотря на то, что железо не меняли и форум поставили более "тяжеловесный" (PunBB, версию уже не помню , но одна из последних) чем был в том плане, что запросов он выполняет намного больше+форум был очень "конкретно" доработан и добавлена целая куча своих модулей. Так в чем была все-таки проблема - никто понять не мог.
 
Ive
Я могу предположить, в чем проблема: ИМХО для каждого вошедшего пользователя устанавливалось свое постоянное соединение. Зашло на форум 700 человек, вот MySQL и выдает connection error. Думаю, нужно использовать обычные (не постоянные) соединения, и не забывать закрывать их после выполнения запроса (запросов). Тоесть, обработку сценария начинать с mysql_conect(), а завершать mysql_close(). Думаю, очень не велика вероятность того, что одновремено те 700 человек, что сидят на форуме, попытаются что-то запросить с сервера, так что количество подключений ограничится 50-70-ю шт.
 
Сверху