[Verdebinario] assistenza gasdotto

Giuseppe De Marco peppelinux a yahoo.it
Mer 25 Maggio 2011 10:00:37 CDT


la prima chiamata che GASdotto.html fà (POST) a server.php dura, in attesa di 
risposta, circa:

373ms -> BUONO, ovvero ONESTO

dopo il login ne segue un'altra che va decisamente "subito". Quando inizia a 
caricare l'interfaccia invece sopravviene la morte:
 
4.3 secondi e via via il resto delle chiamate raggiungono gli oltre 6 secondi 
fino a 8.14 secondi. Stavolta c'è stata una chiamata che è stata in "pending" 
per 1306 secondi prima di ricevere i dati !

L'analisi che sto conducendo mi fà credere che la chiamata a PHP (server.php), 
ovvero la prima, è veloce ed è l'unica che non usa la connessione verso la 
basedati.

Inoltre abbiamo una spiacevole sorpresa. Il cursore SQL è inizializzato con i 
Drivers PDO (ovvero i drivers più lenti della storia di PHP, più lenti di adodb 
e odbc)

        try {
                $db = new PDO ( $dbdriver . ':host=' . $dbhost . ';dbname=' . 
$dbname . ';port=' . $dbport, $dbuser, $dbpassword );
                return true;
        }

Ora sappiamo che PHP-CGI fà caricare e rinizializzare , ad ogni chiamata, la 
caterba di classi ed oggetti che PDO introduce. Il modulo che avrebbe mantenuto 
in memoria buona parte ma in soldoni la musica non è cambiata di molto.

Analisi Su altri hosting presi a casaccio:

kbyte.ciotoni.net/portal: i contenuti statici scaricano subito, il GET sulla 
vista /portal (PHP) impiega circa 7 secondi
kbyte.ciotoni.net/ecommerce/magento: il GET su PHP impiega 8.87 secondi per 
caricare (20 secondi per caricare la pagina di magento con tutti i contenuti 
statici)
www.verdebinario.org: anche lui fà un'unica chiamata a PHP (GET) impiega dai 7 
ai 10 secondi

...su gasdotto, con una media "buonista" di 6.30 secondi la pagina impiega 
126minuti a caricare.

La conclusione a tutto questo è:

PHP-CGI è sicuramente più sicuro del modulo. Non ha memoria condivisa, nè 
sessioni, nè sfrutta, di conseguenza la cache interna. Però ad ogni chiamata è 
costretto a ricaricare tutte le configurazioni e reimportare le librerie di PHP 
e una chiamata ci costa dai 4 ai 14 secondi. Ora mi preme dirvi che anch'io 
preferisco, in produzione, la configurazione attuale perchè conosco i mali 
estremi e gli estremi rimedi.

Ora sappiamo che con un software tipo GasDotto questa condizione è esasperante. 
L'unica soluzione che abbiamo per risolvere il problema è spostarlo di sana 
pianta su un mini-webserver ad-hoc (cherokee, NgineX...) e farlo raggiungere 
tramite mod_rewrite, di Apache, a destinazione. Oppure mettere in chiaro le cose 
a stefano e dirgli che non abbiamo le risorse necessarie per ospitare questo 
servizio, anche perchè lasciare le cose così è un vero peccato.

Bacinis




Maggiori informazioni sulla lista Verdebinario