Questa pagina mi ha subito stupito per una frase: "Server benchmarks
comparing Linux and NT are in. Mostly, however, they try to make headlines
by breaking records in unrealistic benchmark scenarios. In c't's test lab,
a comparison between NT/IIS and the freeware duo Linux/Apache focused on
practice-oriented tasks."
Insomma, si afferma che moltissimi test di benchmark sono condotti senza
criterio; quelli condotti da loro, invece, sono basati sulla pratica.
Vero o no, facciamo finta che lo sia.
Intanto, le parti in gioco:
- windows NT con service pack 4 e IIS 4;
- linux suse 6.1, kernel 2.2.9 e apache 1.3.6
Entrambi, ovviamente sulle stesse macchine. I client invece erano
macchine di fascia bassa (i server erano equipaggiati con quattro
processori Pentium II Xeon a 450 Mhz, due Gb di RAM ed una scheda di
rete), alcuni Linux altri Windows (9x e NT), simulando così qualcosa
come 1024 richieste in simultanea.
Il primo test è stato effettuato facendo richiedere a tutti i client la
stessa pagina HTML da 4Kb: il risultato è una sostanziale parità di
performances fra i due webserver.
Il secondo, invece, si basa su una richiesta casuale da parte dei client
di una pagina fra le 10.000 (ovviamente della stessa grandezza) presenti
in una directory del server. In questo test, Linux/Apache è risultato
circa il 15% più veloce.
Il terzo test, che inizia ad essere impegnativo per le macchine, si basa
sulla richiesta di una quantità di file di due volte superiore a quella
della RAM dei server (quindi qualcosa come 4 GB di pagine richieste).
NT/IIS sembra non riuscire a sopportare più di 30 richieste al secondo,
mentre Linux/Apache arriva a 166. La differenza, si commenta, può essere
principalmente dovuta la tipo di partizione utilizzata dai sistemi (in
termine di grandezza dei cluster o inode) che non alle capacità degli stessi.
Il quarto test si basa non più su pagine statiche come nei precedenti
tre test, ma su pagine dinamiche: la scelta è ricaduta sui CGI, non
essendo le tecnologie ASP e VBscript direttamente portabli ad altri sistemi.
Su NT è stato installato ApcivePerl 517.3, equivalente al Perl 5.005_3
presente sul server Linux. Il risultato è palese: NT/IIS soffrono della
"non-natività" del linguaggio Perl utilizzato per l'interpretazione dei
CGI, riscontrabile come un'eccessiva lentezza nell'invio delle pagine
create dinamicamente. Ma per questo test, avvertono, il risultato era
scontato dall'inizio, e quindi poco significativo. Ricordiamo infatti
che il Perl, linguaggio più largamente utilizzato per scrivere script
CGI, è nato in ambiente Unix e, sebbene il porting di Activestate per le
piattaforme Windows sembra essere molto ben riuscito, ancora una volta
la non-natività del linguaggio di interpretazione si fa sentire.
L'ultimo test è quello di servire sedici macchine tramite due schede
di rete. Qui NT/IIS riesce a prevalere sull'avversario Linux/Apache
anche con una potenza di calcolo minore, ossia con un processore in
meno. La velocità con cui NT/IIS invia le pagine ai client ha fatto
addirittura pensare che le performances non sarebbero peggiorate
significativamente neanche con quattro schede di rete al posto di due.
Questo dimostra che NT, quando ci si attiene alle sue "regole", può
essere veramente veloce.
Le conclusioni degli autori del test sono le seguenti: per una rete
mista, formata cioè da richieste differenti ed indipendentemente dal
volume delle stesse, l'accoppiata Linux/Apache risulta migliore. Per un
server con più schede di rete e con prestazioni medio-alte, NT/IIS è
l'accoppiata ideale.
Ovviamente, poi, sottolineano il fatto che le necessità possono essere
anche altre, ad esempio il linguaggio di scripting da adottare (CGI, ASP,
VBscript ecc.), la potenza della macchina da utilizzare (sembra infatti
che Linux/Apache riesca a "spremere" maggiormente le CPU, sebbene NT/IIS
appaia sempre più performante per ogni CPU aggiunta) ecc.
Insomma, tennisticamente parlando il risultato è un "40-30" a favore di
Linux/Apache: la non netta supremazia dell'uno o dell'altro mi ha fatto
scegliere questa pagina, considerata imparziale nei giudizi.