Newsgroup: it.comp.www.php
Titolo: Numero sessioni di Apache e numero sessioni mysql

Ciao a tutti mi succede una cosa veramente strana.
Ho impostato il numero massimo di sessioni contemporanee di apache a 
100. Al raggiungimento delle 100, quelle in più vengono messe in attesa 
per essere eseguite quando si liberano le 100 sessioni ammesse.
Ho ammesso altrettante 100 sessioni verso il database mysql pensando che 
fosse sufficiente visto che ogni pagina php si collega con un solo 
utente e ad un solo database.
Ho pensato: al massimo ci saranno 100 pagine php che girano, ognuna apre 
una connessione verso il database e quindi 100 connessioni verso il 
database sono sufficienti.
Invece ho scoperto che non è così. Quando le pagine arrivano ad essere 
100 contemporanee le sessioni verso il database non bastano.
Quando le pagine sono, non so, 95 contemporanee, le sessioni verso il 
database tornano sufficienti.
Come è possibile? Cosa mi sfugge?
Considerando che:
- ogni pagina fa una sola connessione verso il database
- le connessioni verso il database non sono persistenti
- le connessioni verso il database vengono chiuse dalle pagine php prima 
del termine (anche se non serve, la connessione sarebbe chiusa lo stesso 
da apache al termine dell'esecuzione della pagina)
- non ci sono sessioni mysql eseguite da cose diverse da pagine php
- le prove sono state fatte usando contemporaneamente anche phpmyadmin, 
ma anche queste sono pagine php quindi dovrebbero rispettare il limite 
totale di 100 pagine php contemporaneamente
Io sinceramente non trovo la spiegazione logica.

 Come è possibile? Cosa mi sfugge?
Potrebbero esserci diversi fattori.
Il primo e` che quando viene chiuso un socket, il S.O. (solitamente) lo 
mantiene in stato di LINGER per qualche secondo, per vedere se arrivano 
connessioni dalla stessa sorgente ed accelerare cosi` la riconnessione.
Il secondo e` che potrebbero esserci altre cose che si collegano al DB: 
script di sistema, cronjob, altri server con backend su MySQL, ecc.
Solitamente e` sufficiente mettere i due numeri allo stesso valore, 
perche` apache serve anche altri contenuti oltre agli script php con 
accesso a DB, quindi non saturera` mai le connessioni, ma se nel tuo caso 
particolare non ci sono contenuti statici, ti conviene aumentare un po' le 
connessioni verso MySQL.
Bye.

 totale di 100 pagine php contemporaneamente
Prova a rifarle chiudendo phpmyadmin.... potrebbe essere che l'uso dei 
frame di phpmyadmin, apre una connessione per ogni frame, e quindi per 
un'unica "pagina" in realtà ci sono state più connessioni. (spero non 
sia una c...ata colossale quella che ho appena detto) :)
-- 
rob4you

 frame di phpmyadmin, apre una connessione per ogni frame, e quindi per 
Teoria:
Ogni frame apre una pagina e ogni pagina apre una connessione verso 
mysql. Quindi avendo comunque le pagine il limite di 100, non si 
vedrebbero motivi per superare il limite delle 100 connessioni verso il 
database.
Pratica:
Non so se per scelta del browser IE o per scelta del server web ma mi 
pare proprio che le pagine di una sessione web (finestra del browser o 
più finestre del browser se aperte con ctrl-n, non invece più finestre 
del browser aperte in maniera indipendente fra loro) vengano scaricate 
solo in serie e mai in parallelo, quindi a maggior ragione non dovrebbe 
esistere il rischio di superare alcun limite, né delle pagine php 
contemporanee né delle connessioni verso il database.

 connessioni verso MySQL.
Infatti pensavo di mettere come limite sessioni apache a 100 e come 
limite connessioni mysql a 110.
Spiace che non ci sia scritto a caratteri cubitali in giro su internet 
di questo serio problema del quale ogni programmatore/sistemista 
dovrebbe essere portato a conoscenza.