Максимальное количество соединений

rudik

Developer
Максимальное количество соединений

Проблема MySQL постоянно нехватает соединений я их уже до 300 увеличил. На хостинге хостятся 20 сайтов + логи Apache пишутся в БД на каждый сайт для логов уходит 1 соединение.

При выводе количества процессов появляются большое кол-во SLEEP процессов с PHP в основновном вызванных функцией mysql_pconnect почему они не умирают после окончания выполнения скрипта? И каково их время жизни, а то набирается сотня другая и MySQL Connection Error.

Может кто расскажет из личного опыта как с этим бороться. Я же немогу заставить юзеров не запускать pconnect.
 

Demiurg

Guest
потому что pconnect на то и p, что бы не умирать после завершения скрипта. Не используй его.
 

tony2001

TeaM PHPClub
>Я же немогу заставить юзеров не запускать pconnect
запросто.

php.ini
disable_functions = mysql_pconnect
 

rudik

Developer
1. Если других вариантов решения нет, то буду лечить именно так.

2. А нет ли подстановки функций в ПХП чтоб вместо mysql_pconnect использовался mysql_connect

3. Так pconnect - это большой глюк ПХПю Много о нем в форуме говорилось и давно, но почему его не устраняют сами разработчики? Уже сколько версий вышло и ничего не изменилось.

4. Как делать рассчет необходимого числа max_connections в mysql? Только практическим способом?

5. Можно ли убивать соединения pconnect именно которые из ПХП вызваны, потому что внешние программы нормально с постоянным соединением работают.

В любом случае спасибо tony2001 и Demiurg.
 

Demiurg

Guest
>2. А нет ли подстановки функций в ПХП чтоб вместо mysql_pconnect использовался mysql_connect
если пропишишь в php.ini то, что сказал Тони, вызов mysql_pconnect будет идеинтичен вызову mysql_connect. Пользователи ничего не заметят.
 

tony2001

TeaM PHPClub
>если пропишишь в php.ini то, что сказал Тони, вызов mysql_pconnect будет идеинтичен вызову mysql_connect.
не совсем так.
тогда оно скажет, что mysql_pconnect disable for security reasons.
а сделать алиасом - можно, смотри сорцы, там не так много надо править.
 

Demiurg

Guest
так ... я гоню. Надо по другому.
в php.ini прописываешь

[MySQL]
mysql.allow_persistent = Off
 

rudik

Developer
Вот супер в FAQ эту тему думаю она многим поможет, даже тем кто об этом и не подозревает. Спасибо большущее. Будете в Киеве с меня пиво.
 

tony2001

TeaM PHPClub
напиши статью в ФАКи и можешь пиво себе оставить =)
я серъезно.
 

Rynor

stay hungry
Уважаемые!
в php.ini:
mysql.allow_persistent = On
по умолчанию
не просто же так...
 

Demiurg

Guest
mysql_pconnect тоже не просто так существует. НО практика показывает, что ей лучше не пользоваться.
 

Rynor

stay hungry
то есть опыт и здравый смысл подсказывает что
лучше переключить в
mysql.allow_persistent = Off
?
 
Сверху