Prestazioni kernel 32 bit, 32 bit con PAE e 64 bit
December 30th, 2009 — IppatsuMan
Sul mercato consumer desktop e laptop sono ormai ampiamente diffusi sistemi con processori a 64 bit associati a dotazioni di memoria che superano facilmente i 4GiB. Per sfruttare completamente la RAM è necessario un kernel a 32 bit che supporti il PAE o un kernel a 64 bit. Fino a qualche tempo fa gli utilizzatori di Linux potevano essere restii ad utilizzare la versione a 64 bit per la mancanza di driver o software proprietario (un esempio tipico era Adobe Flash).
Tranne alcuni casi particolari in generale i kernel a 64 bit possono tranquillamente essere utilizzati sulle macchine domestiche. In effetti a parte le perdite di performance un kernel a 32 bit funziona perfettamente su una macchina a 64 bit.
Oggi, 30 dicembre, Phoronix ha rilasciato i risultati dei suoi test che mettono a confronto le prestazioni di Ubuntu con kernel a 32 bit, 32 bit con PAE e 64 bit su una macchina con processore Intel Core 2 Duo T9300 e 4GiB di RAM. I 4 GiB di RAM sono completamente utilizzabili da tutte e tre le versioni del kernel – anche se quella a 32 bit senza PAE ne riporta solo 3, in quanto un GiB è riservato dal kernel e non è utilizzabile lato utente. I risultati del test mettono quindi in luce le differenze di prestazioni soprattutto per le applicazioni di “number crunching”, dove il pieno utilizzo dei registri a 64 bit del processore permette al kernel 64 bit di avere prestazioni anche molto superiori rispetto alla versione a 32 bit. Il test completo può essere consultato sull’articolo di Phoronix.
La sostanza del test, per chi non avesse voglia di leggerlo integralmente, è che le prestazioni del kernel 32 bit e 32 bit con PAE sono sostanzialmente identiche, mentre il kernel 64 bit ha prestazioni migliori degli altri due. Le migliori prestazioni del kernel 64 bit sono apprezzabili, come è lecito aspettarsi, soprattutto in applicazioni computazionalmente intensive, come ray tracing o utilizzo di crittografia. Un interessante outsider è il benchmark relativo al server http Apache: sui kernel a 32 bit il test ha ottenuto una media di 470 richieste al secondo servite, mentre con il kernel a 64 bit una media di quasi 8000 richieste al secondo. Questa differenza di un fattore 20 mi fa pensare che o il test è fallato o c’è qualche problema di configurazione nella versione di Apache pacchettizzata per 32 bit. Sarebbe interessante approfondire la questione. In breve: il kernel a 64 bit è utilizzabilissimo sulle macchine domestiche che lo supportano ed è quasi un must sui server su cui si desidera ottenere migliori prestazioni in modo “gratuito”.
I risultati completi del test sono disponibili sul sito di Phoronix.