Archivio mensile:maggio 2012

Come simulare una connessione lenta

Può capitare a volte di voler simulare una connessione lenta. Ad esempio per analizzare meglio la performance di un sito web che si sta sviluppando in locale.

Come sappiamo i motori di ricerca (soprattutto Google) prediligono i siti veloci, pertanto con una connessione lenta possiamo valutare meglio le ottimizzazioni che applichiamo al sito. Ogni secondo risparmiato può farci guadagnare posizioni nelle serp.

Linux permette di simulare una connessione lenta con il modulo netem del kernel usando il comando tc. Ad esempio:


# tc qdisc add dev eth0 root netem delay 300ms 30ms
# tc qdisc change dev eth0 root netem loss 0.10%

Questi comandi aggiungeranno un ritardo casuale tra 300ms e 30ms e una perdita di pacchetti dello 0.10% per l’interfaccia eth0.
Molti altre funzioni e esempi sono visibili qui.

Consiglio anche questo programma in Java multipiattaforma che funziona da “slow proxy” http://www.dallaway.com/sloppy/

Potete contattarmi per consigli su come ottimizzare un sito web.

Attenzione all’aggiornamento di awstats in Plesk 10 e Centos 5

Recentemente ho avuto una brutta sorpresa aggiornando i pacchetti di un server Centos 5 con Plesk 10.4.4.

Il sistema di statistiche awstats ha smesso di funzionare. La causa è stata l’aggiornamento del pacchetto awstats-7.0-12012611.swsoft con l’aggiornamento di Centos awstats-7.0-2.el5.rf.

Ho risolto il problema rimuovendo brutalmente il pacchetto di Centos e reinstallando il pacchetto del Plesk.


rpm -e --nodeps awstats 
wget http://64.131.90.31/PSA_10.4.4/dist-rpm-CentOS-5-x86_64/contrib/awstats-7.0-12012611.swsoft.noarch.rpm 
rpm -ivh awstats-7.0-12012611.swsoft.noarch.rpm 

Come risolvere “mod_fcgid: read data timeout in 40 seconds” in centos 5

Nella versione di mod_fcgid di centos 5 sembra esserci un bug che causa l’errore


mod_fcgid: read data timeout in 40 seconds

nei VirtualHost a prescindere dal valore di IPCCommTimeout e IPCConnectTimeout configurato in /etc/httpd/conf.d/fcgid.conf

In rete ho trovato una soluzione che consiste nell’inserire in ogni VirtualHost i parametri IPCCommTimeout e IPCConnectTimeout, ma per me ha funzionato il semplice inserire come primo VirtualHost il seguente codice:


<VirtualHost *:80>
Include conf.d/virtualfcgi.conf
</VirtualHost>

e modificare i parametri di mod_fcgi all’interno del file /etc/httpd/conf.d/virtualfcgi.conf


<IfModule mod_fcgid.c>
IdleTimeout 3600
ProcessLifeTime 7200
MaxProcessCount 64
DefaultMaxClassProcessCount 8
IPCConnectTimeout 300
IPCCommTimeout 7200
BusyTimeout 300
</IfModule>