Problem s apache

Dalibor Straka dast na panelnet.cz
Úterý Leden 27 18:10:11 CET 2004


On Tue, Jan 27, 2004 at 05:49:16PM +0100, Karel Zak wrote:
> On Tue, Jan 27, 2004 at 03:42:37PM +0100, Dalibor Straka wrote:
> > Videl bych to na blbe napsany php skripty. Donutte je aby spojeni do
> > mysql taky zaviraly. Je uplne v pohode, kdyz spojeni i behem jednoho skriptu
> > dvakrat otevrou a zavrou. Hlavne to nedrzet hodinu ;-(. Jak hodne je
> 
>  To mi pripada  jako rada od navrharu HTTP 0.9,  proste neni nic lepsiho
>  nez  navazovani spojeni. A  az naproti  nebude threadova  aplikace, ale
>  neco  co se  pri tom  spojeni forkuje  (treba PostgreSQL)  tak to  cely
>  server dotycneho pujde do kyticek...
>  
Pro mysql ano. Pro Postresql a oracle ne.

>  V cem muze existence spojeni na  SQL server neco blokovat a zpomalovat?
>  Mam spojeni z apache na PostgreSQL (ne  v PHP) co jedou i nekolik dni a
>  problem nevidim.
> 


Ale teda ted vam vynadam. Je sakra rozdil mezi spojenim
apache <--> mysql a  apache <--> oracle(postgres). To je nebe a dudy.
S obema databazema se musi zachazet jinak. Do oracle udelam konstantni
spojeni a neprerusim ho. Kdyz se zacne do oracle busit "connect & close"
tak stravi vanoce forkovanim. Jenze mysql je presne na toto delane. 
Naopak se mu nelibi, kdyz na nem visi plno dlouhodobych pripojeni.
Ktere se (klidne i chybou programu) nezaviraji a casem se uz zadne 
spojeni nebude moci uskutecnit. Uz bude proste plno.

Kdyz vytvorite v php par desitek persistentnich spojeni do oracle pres
sessions, tak kazdy vyforkovany dedatko apachovo sdili tato spojeni.
Takze to mame, to mame pocet_spojeni * pocet_instanci. To oracle miluje.
Ale apache moc ne, protoze mu rada dochazi pamet. Kazdy worker ma v sobe
zkopirovana vsechna data vsech sessions (desitky Mega). Takze je dobre
obcas neco uzavrit. Jsou s tim problemy. 


-- Dalibor Straka


Další informace o konferenci Linux