Avanti Indietro Indice

6. FAQ (Domande Frequenti)

D1.

C'è un qualsiasi indice di merito per i sistemi Linux?

A:

No, fortunatamente nessuno è ancora venuto fuori con una misurazione Lhinuxstone (tm). E se ce ne fosse uno, non avrebbe molto senso: i sistemi Linux sono usati per tanti differenti compiti, dal server web pesantemente caricato alla workstation grafica per uso individuale. Nessun singolo indice di merito può descrivere le prestazioni di un sistema Linux in differenti situazioni.

D2.

Quindi perché non una dozzina di indici riassumenti le prestazioni di diversi sistemi Linux?

A:

Sarebbe la situazione ideale. Vorrei vedere ciò diventare realtà. Nessun volontario per un Linux Benchmarking Project? Con un sito web e un database completo e ben progettato?

D3.

... BogoMips ...?

A:

I BogoMips non hanno niente a che fare con le prestazioni del sistema. Leggere il BogoMips Mini-HOWTO.

D4.

Qual è il miglior benchmark per Linux?

A:

Dipende da quale aspetto prestazionale di linux si vuole misurare. Ci sono differenti benchmark per misurare la rete (p.es i transfer rate), i file server (NFS), l'I/O dei dischi, le prestazioni sui calcoli in virgola mobile e interi, grafica, 3D, larghezza di banda della memoria del processore, prestazioni CAD, tempo di transazione, prestazioni SQL, prestazioni del server Web, prestazioni in tempo reale, prestazioni del CD-ROM, prestazioni di Quake (!), ecc ... AFAIK nessuna suite di benchmark esiste per linux che supporti tutti questi test.

D5.

Qual è il processore più veloce sotto Linux?

A:

Il più veloce in quale processo? Se si è molto orientati alla masticazione di numeri, un processore Alpha ad alta frequenza di clock (600 MHz in su) dovrebbe essere più veloce di nessun altro, dal momento che gli Alpha sono stati progettati proprio per fornire questo tipo di prestazioni. Se, dall'altro lato, si vuole mettere assieme un server news davvero veloce, è probabile che la scelta di un veloce sottosistema di dischi rigidi e molta RAM risulterà in un migliore aumento di prestazioni che un cambio di processore per la stessa somma di $.

D6.

Fammi riformulare l'ultima domanda, allora: c'è un processore che è il più veloce per applicazioni generiche?

A:

Questa è una domanda trabocchetto ma ha una sola e semplice risposta: NO. Si può sempre disegnare un sistema veloce anche per applicazioni generiche, indipendentemente dal processore. Di solito, restando uguali tutte le altre cose, una più alta frequenza di clock risulterà in maggiori prestazioni del sistema (e anche più mal di testa). Tirando fuori un vecchio processore a 100Mhz da una motherboard (di solito non) aggiornabile, e inserendo dentro la versione a 200Mhz, si dovrebbe sentire una grande differenza. Certamente con solo 16 MB di RAM, lo stesso investimento sarebbe stato molto più saggiamente speso in DIMMs aggiuntive ...

D7.

Ma allora la frequenza di clock influenza le prestazioni di un sistema?

A:

Per molti processi, eccetto per i loop NOP vuoti (a proposito, questi stanno per essere rimossi dai moderni compilatori ottimizzanti), una maggiorazione nella frequenza di clock non darebbe un aumento lineare delle prestazioni. Molti piccoli programmi che fanno un uso intensivo del processore entrano interamente nella cache primaria del processore (la cache L1, usualmente 16 o 32K) e avranno un aumento di prestazioni equivalente all'aumento della frequenza di clock, ma molti "veri" programmi sono molto più larghi di ciò, hanno cicli che non entrano nella cache L1, condividono la cache di secondo livello (L2) con altri processi, dipendono da componenti esterni e daranno un incremento di prestazioni molto minore. Questo è perché la cache L1 funziona alla stessa frequenza di clock del processore, mentre molte cache di secondo livello e tutti gli altri sottosistemi (DRAM per esempio) funzionano in maniera asincrona a minore frequenza di clock.

D8.

OK, poi, un ultima domanda su questa questione: qual è il processore con il miglior rapporto tra prezzo e prestazioni per un uso generico di Linux?

A:

Definire un "Linux di uso generico" non è una cosa facile! Per ogni particolare applicazione, c'è sempre un processore con IL MIGLIORE rapporto prezzo/prestazioni in ogni momento, ma cambia abbastanza frequentemente così come i produttori rilasciano nuovi processori, così rispondere Processore XYZ a nnn Mhz sarebbe una risposta valida solo in quel momento. Comunque il prezzo di un processore è insignificante se paragonato al prezzo dell'intero sistema che si sta assemblando. Così, davvero, la questione dovrebbe come si può massimizzare il rapporto tra prezzo e prestazioni di un dato sistema? E la risposta a questa domanda dipende fortemente dal minimo di prestazioni richieste e/o dal prezzo massimo stabilito per la configurazione che si sta considerando. A volte l'hardware comune non soddisfa le prestazioni minime richieste e costosi sistemi RISC sarebbero la sola alternativa. Per l'uso di casa si raccomanda un sistema bilanciato e omogeneo per tutte le prestazioni (ora vai ad immaginare che cosa io intendo per bilanciato e omogeneo :-); la scelta di un processore è una decisione importante, ma non più che scegliere il tipo di disco fisso e la capacità, il quantitativo di RAM, la scheda video, ecc ...

D9.

Quando un aumento delle prestazioni è considerato "significativo"?

A:

Vorrei rispondere che innanzittutto ogni variazione sotto all'1% non è significativa (potrebbe essere descritta come "marginale"). Noi umani, difficilmente percepiamo la differenza tra due sistemi con un 5% di differenza nel tempo di risposta. Certamente alcuni benchmarkers "hard-core" non sono umani e ti diranno confrontando un sistema con indici di sistema 65.9 e 66.5 che il secondo è sicuramente molto più veloce.

D10.

Come posso ottenere "significativi" aumenti nelle prestazioni al costo minore?

A:

Dal momento che molti codici sorgenti per Linux sono disponibili gratuitamente, l'esame attento e il ridisegno algoritmico delle subroutine chiave potrebbe aumentare in alcuni casi le prestazioni. Se ci si trova ad avere a che fare con un progetto commerciale e non ci si vuole addentrare profondamente nello sviluppo in codice C si dovrebbe chiamare un consulente Linux. Vedere il Consultants-HOWTO.


Avanti Indietro Indice