mysql_pconnect() - война продолжается

anight

Новичок
mysql_pconnect() - война продолжается

в php4.0.5 mysql_pconnect все же начала работать.
напомню, в 4.0.4pl1 эта функция либо глючила либо каждый раз открывала новое соединение, т.е. не работала.

правда, обнаружилась одна пренеприятнейшая деталь:
persistent link существует лишь в рамках одного child'a apache.

так задумано? или это тоже баг?

как я тестировал:
===эксперимент 1===
в httpd.conf:
MaxClients 1

ab -t 10 -c 10 http://localhost/скрипт-где-находится-pconnect

наблюдаем за mysql:
show processlist
в течение 10 сек одно соединение с time=0
все верно.

после 10 сек time начинает увеличивается, т.е. соединение простаивает.

===эксперимент 1===
в httpd.conf:
MaxClients 10

ab -t 10 http://localhost/скрипт-где-находится-pconnect
(даже без "-c" ! т.е. все соединения должны происходить последовательно!)

наблюдаем за mysql:
show processlist
сразу же создается 10 соединений, в течение всего времени исполнения ab - time=0.

после time начинает увеличивается, т.е. все соединения простаивают.

и как это называется???
а если у меня активных апачей около 200?
а если у меня MaxRequestsPerChild не равен 0?
значит ли это, что pconnect вообще бессмылено использовать на больших сайтах?
 

anight

Новичок
очепятка: во втором случае читать "эксперимент 2"
 

anight

Новичок
а делать-то что?

ведь у апача есть главный процесс (не знаю как это в терминологии)
и у него есть т.н. shared memory (вроде через libm, но это догадка)
мне сложно поверить что зендовцы не догадались хранить все пхпшные hash'ы там.
По крайней мере не все, а которые касаются persistent-чего-нибудь.
 

si

Administrator
>а делать-то что?
Неизвестно :)

А вообше зачем тебе этот pconnection, mySQL весьма быстро connection создает ? Я думаю с pconnection много проблем, например как LOCK работать будет ? Т.е. если два скрипта используют один connection это один thread или нет, если один то LOCK не будет работать :(
 

anight

Новичок
да в общем-то чисто теоретические изыскания.....
зачем просто pconnect вообще нужен тогда...

сутки потратил и пришел в тупик.. :((

проблема (самая большая, как я понимаю) что про все эти тонкости в мануале НИ СЛОВА.
вот так вот, дорогие разработчики... сделали мы тут... как работает сами еще не выяснили, а должно вроде так-то...
а вы попробуйте... помучайтесь... авось что-нибудь получится...

в общем, я опечален
 
Сверху