default-logo

Un check up per il PC

Posted On 02 Gen 2008
Comment: Off

windowstutorialTutorial Windows – Un qualunque computer odierno del costo approssimativo di un migliaio di Euro, monitor compreso, è in grado di compiere il lavoro di un maiframe costosissimo di soli 25 anni fa. La crescita esponenziale dei cicli interni e la tendenza inversamente proporzionale dei costi, hanno permesso a ciascuno di noi di avere sul tavolo un computer in grado di fare cose solo immaginabili appena cinque anni or sono.

Siamo soddisfatti di quello che abbiamo? Caricare un’applicazione in un secondo mentre prima ce ne volevano 5 ci soddisfa? Vogliamo impiegare ancora meno a fare il rendering di un’immagine perché cinque secondi sono decisamente troppi? Allora siamo i migliori candidati all’assuefazione causata dall’eccessivo uso della “droga da Performance”.


Overclocking


Questo termine si riferisce generalmente alle CPU e consiste nel forzare la velocità di funzionamento ad un valore più elevato di quello dichiarato. In genere il loro costo varia a seconda del modello o del costruttore ma, soprattutto, per la velocità dichiarata. In alcuni casi però la velocità dichiarata è quella che viene certificata dal costruttore in modo che non si abbiano inconvenienti durante il suo funzionamento. Ci sono voci per cui sembra che alle volte la velocità del processore indicata dal costruttore non dipenda dalle sue effettive capacità ma, semplicemente, dalla quantità di richiesta che viene generata da parte dei costruttori di schede madri. Per assurdo potrebbe essere più conveniente, per un costruttore, fabbricare delle CPU in grado di funzionare anche a velocità più elevate marchiandole a velocità più bassa solo perché non riesce a far fronte alle richieste di CPU più economiche. In tal caso, anziché rimandare la fornitura dei processori a velocità più modesta, il costruttore decide che è economicamente più vantaggioso marcare a velocità ridotta delle CPU che potrebbero andare più velocemente.
Ciò non vuol dire che aumentando tale velocità ad un valore superiore di quanto dichiarato, la CPU funzioni sempre. Anzi, nella maggior parte dei casi funziona, ma si va incontro ad alcuni gravi rischi. Il primo, e più concreto, è che la garanzia immediatamente decade se la CPU viene utilizzata ad una frequenza di funzionamento più elevata di quanto dichiarato ed il secondo, non meno grave, è che se non prendiamo delle misure adeguate per il suo raffreddamento rischiamo di bruciarla. E’ bene predisporre un adeguato incremento della dissipazione di calore aggiuntivo che la CPU produce per effetto dell’overclocking. In commercio ci sono dissipatori molto efficienti, a patto che vengano correttamente installati, aggiungendo magari della pasta adesiva ad elevata conduzione termica. Per gli estremisti dell’overclocking, sono stati sviluppati sistemi di raffreddamento a celle frigorifere, che sfruttano l’effetto Peltier, o radiatori di raffreddamento ad acqua.
Anche il cabinet deve essere adeguatamente ventilato e occorre verificare che gli indicatori di protezione da calore siano funzionanti.
La frequenza operativa di una CPU è determinata da due fattori che sono: la frequenza di clock del Front Side Bus (FSB) ed il valore di moltiplicazione del clock della CPU. Il FSB è responsabile del collegamento della CPU al System Chipset, alla memoria di sistema, al bus PCI ed altri componenti critici.
Attraverso l’appropriata configurazione del BIOS è possibile raggiungere, in alcuni casi, una condizione stabile. In alcuni casi perché a volte, su alcune schede madri, non è possibile modificare il valore di moltiplicazione della frequenza di clock.
Non è scopo di questo articolo addentrarci negli aspetti tecnici dell’overclocking, ma è bene sapere che la stessa attività è possibile anche su alcune schede grafiche di alcuni costruttori come ad esempio GeForce o Radeon.


CPU Benchmark


Ammesso di essere riusciti a fare l’overclock della propria CPU, di quanto abbiamo effettivamente migliorato le prestazioni? Non possiamo fidarci delle sensazioni perché sono troppi i fattori in gioco che potrebbero influire sul risultato. Il tipo di applicazione potrebbe non essere “CPU intensive”, quindi non richiedere un carico di lavoro apprezzabile o il disco potrebbe essere frammentato rilevando quindi prestazioni non veritiere. Mentre vedremo nel corso di questo articolo come fare ad ottimizzare tutto il sistema, in questo caso abbiamo bisogno di un prodotto specifico che ci aiuti a determinare l’effettivo incremento di prestazioni del processore. I Processor Benchmark fanno proprio questo, anche se bisogna dire che il processore in sé è formato da una struttura complessa ed in genere segue un’architettura diversa per diverse famiglie. Un processore potrebbe essere più veloce nelle operazioni a virgola mobile, mentre un altro nell’utilizzo della memoria grazie ad uno o più livelli di cache L1, L2 e simili. Il dato critico che un benchmark dovrebbe essere in grado di rilevare è la prestazione globale nell’utilizzo di applicativi comuni. Infatti, avrebbe poco senso dire che un processore è più veloce di un altro nell’eseguire una singola operazione. Non è questo il compito del processore. Bisogna definire quali operazioni abbiano più o meno incidenza e stabilire il mix che formerà l’oggetto della rilevazione. Successivamente bisogna misurare il tempo effettivo speso per l’elaborazione di ciascuna istruzione, l’hit rate della cache L1 ed L2, ossia quante volte il dato da elaborare si trova in memoria, la percentuale di utilizzo del bus di sistema e moltissime altre cose.
Riguardo, ad esempio, al semplice valore di hit rate, mi preme sottolineare che tanto maggiore risulta essere, quanto maggiori risultano essere le performance, ma costruire un algoritmo in grado di prevedere quali siano i dati che il processore potrebbe elaborare non è semplice. Un valore di hit rate maggiore, rispetto a quello generato da un altro processore equivalente, potrebbe essere sintomo di una maggiore attenzione nella realizzazione della CPU stessa.
Alla fine dei conti, però, noi abbiamo posto maggiore enfasi sul processore, perché riteniamo che il miglior rendimento, in termini di performance, da parte del nostro computer dipenda sostanzialmente da questo componente. Bene, di fatto non è così. Alla base di tutto troviamo le applicazioni con le quali ci confrontiamo giornalmente, che non utilizzano solo il processore ma il computer nel suo insieme.


Il resto del mondo


Un computer è fatto dal processore, sicuramente, ma attorno ad esso sono posizionati una serie di componenti che fanno la differenza tra un computer veloce ed uno lento. Scagli la prima pietra chi non ha mai provato due computer diversi che, nonostante il medesimo processore, avevano prestazioni differenti: uno “sembrava” veloce, mentre l’altro “sembrava” lento. Il processore è montato su una scheda madre che ha un certo Bios, che si comporta in un certo modo, colloquia con la RAM attraverso il Bus di Sistema ed attraverso il Bus PCI, utilizza le periferiche come, ad esempio, dischi, video ed altro.
Un benchmark che si rispetti deve tenere in debita considerazione tutti gli elementi e le implicazioni che generano le prestazioni di un computer e saper rilevare al meglio gli indicatori che permetteranno all’utente di valutare l’effettiva performance dell’intero sistema.
Ecco che nascono benchmark in grado di misurare ogni singolo aspetto del funzionamento dei dischi, CD Rom, CD RW e DVD compresi, quanto risultano essere veloci nella lettura sequenziale o casuale dei settori, quanti cicli CPU vengono utilizzati per spostare i dati dal disco alla memoria di lavoro e molto altro. Analogamente può essere stressata la RAM per verificare il tempo di allocazione e rilascio di blocchi di memoria, i tempi di accesso ed altro. Nulla viene lasciato al caso ed esistono benchmark per le schede audio, in grado di rilevare il livello di sintetizzazione del segnale o per le schede video in grado di rilevare le performance di applicazioni 2D o 3D in rendering, aliasing, OpenGL e quant’altro.
Avete mai avuto l’impressione che la vostra rete sia lenta? Sicuramente qualcuno di voi si lamenterà della lentezza della connessione ad Internet. Ebbene proprio per questi casi esiste una fascia di benchmark in grado di rilevare le performance della rete o della connessione ad Internet. Questi Benchmark sono in grado di rilevare l’effettivo traffico che attraversa il vostro collegamento senza lasciare nulla al caso. Con un simile strumento sarete in grado di rilevare con estrema precisione se le vostre sensazioni siano corrette o meno.
Anche la batteria dei portatili possiede il proprio bravo benchmark, in grado di rilevarne lo stato di funzionamento ed il tempo di vita rimanente, ma tra quelli che la fanno da padrone troviamo una categoria a se composta dagli Application Benchmark.


Benchmark Applicativi


Possono essere misurate le prestazioni di un File Server o di un Web Server? Sicuramente è possibile farlo con strumenti del tipo Performances Monitor e simili, ma se effettivamente volessimo misurare le effettive prestazioni sotto stress di un server applicativo, dovremmo simulare per nostro conto l’accesso simultaneo di un certo numero di client.
NetBench e WebBench sono stati sviluppati proprio con il preciso scopo di testare, su quel determinato hardware, quanto bene sia stato implementato il meccanismo di I/O sui file o per testare come effettivamente si comporti un server Web. Nel primo caso viene misurata la reazione di un file server alle richieste da parte dei client. NetBench produce un dettagliato rapporto statistico sui tempi di risposta e sulla quantità di byte che attraversano la rete, verificando così i tempi di risposta anche in relazione al numero di richieste da parte dei client. Nel secondo caso, WebBench misura il carico di lavoro di un server Web simulando le richieste da parte di client apparentemente reali, che utilizzano diverse tipologie di browser, in modo da simulare quanto più realisticamente possibile la realtà di Internet. Sarà facile, utilizzando un simile strumento, determinare se il server è sottodimensionato perché non riesce a soddisfare più di un certo numero di richieste. L’amministratore del server avrà così dei preziosi elementi oggettivi da utilizzare per valutare se magari non sia il caso di utilizzare hardware più potente o una batteria di server in grado di dividersi il carico di lavoro.
Alcuni produttori di software scrivono essi stessi i tool per simulare un carico di lavoro realistico per testare il comportamento della propria applicazione. Ad esempio, esistono dei Work Load Simulator per Exchange in grado di simulare il carico di lavoro che viene a gravare su un server di posta elettronica. Se l’amministratore della posta elettronica ha progettato un server con determinate caratteristiche hardware, prevedendo che potesse ospitare migliaia di caselle postali, potrà, con uno strumento simile, stressare il risultato del proprio progetto per verificare se la dotazione hardware del server sia o meno sufficiente per le proprie esigenze.


Dalla parte dell’industria


Esiste, tra l’altro, un riconosciuto standard industriale che viene adottato quale riferimento assoluto per verificare le prestazioni di un server Web. SPECweb99 (www.spec.org/osg/web99) non misura però le prestazioni del server dal punto di vista del client, ma sostanzialmente dall’interno del server stesso. La forza di simili specifiche nasce dal fatto che sono riconosciute come indiscusso punto di riferimento da parte di industrie del calibro di: Compaq, Dell, Hewlett-Packard, IBM, Intel, Microsoft, Mindcraft, Netscape, Siemens, SGI, Sun Microsystems, e Unisys. Perfino Cisco, pur non essendo tra la lista dei membri del comitato, ha contribuito allo sviluppo di queste specifiche.
Alcune organizzazioni hanno tra gli scopi della propria esistenza proprio quello di fornire elementi valutativi sulle performance di una precisa famiglia di applicazioni. E’ il caso di Transaction Processing Performance Council (www.tpc.org) che ha sviluppato una serie di benchmark in grado di testare le performance dei server di database. Indipendentemente dalla piattaforma operativa e dalla software house che ha prodotto il database, i benchmark in questione sono in grado di determinare con assoluta precisione se è meglio SQL Server, DB2, Oracle o altri installati su sistemi operativi diversi come, tanto per fare dei nomi, Windows 2000, HP-UX, AIX. Hanno testato veramente di tutto con criteri assolutamente scientifici ad iniziare dalle macchine single processor ,fino ai giganteschi cluster a più nodi ed a più processori per nodo verificando, per ciascuna famiglia, i valori di benchmark applicativi ed il costo relativo al complesso dell’hardware, del software e dei costi di gestione, rapportato ai valori misurati.


Benchmark di applicazioni


Come vedremo non è la stessa cosa misurare le performance di un server applicativo rispetto ad una applicazione che gira su un client. Un’altra ampia famiglia di benchmark, come abbiamo accennato all’inizio di questo articolo, viene adottato per misurare i tempi di risposta di normali applicazioni commerciali tra quelle maggiormente diffuse.
I-Bench, ad esempio, produce un punteggio globale che deriva dal singolo risultato di un insieme di sei test. Chi ha sviluppato questo benchmark non ha avuto vita facile nel determinare quali fossero realmente le sei applicazioni più diffuse da misurare, ma alla fine sono stati considerati: il tempo di caricamento di una pagina HTML; il caricamento di un foglio XML formattato secondo lo standard CSS (Cascading Style Sheets); la velocità con cui Acrobat Reader visualizza un documento PDF; l’esecuzione di codice Java all’interno di una Java VM; i tempi di esecuzione di cinque script in JavaScript per concludere con il tempo di esecuzione di un clip in Macromedia Flash.
Esistono un’infinità di test che possono essere condotti sui client per verificare la funzionalità delle applicazioni, ma ricordate che il mondo dei benchmark è un mondo complesso. Quando si fanno rilevazioni di questo tipo bisogna sempre partire considerando l’hardware, poi la rete che deve essere attraversata nel processo client – server, per finire alle applicazioni che sempre più spesso girano parte sul client e parte sul server. Misurare le performance globali di un sistema così complesso non è facile e lo è ancora di meno produrre degli strumenti in grado di farlo. La valutazione degli interventi da fare dipende unicamente dall’esperienza di un operatore che, utilizzando questi strumenti, ha le capacità di giudizio necessarie per pianificare gli interventi più adeguati.



About the Author