Performance Tuning

mercoledì 29 novembre 2006 alle 29:20 | Pubblicato su Performance Tuning | 1 commento

Francamente non me la sento di usa la frase “ottimizzazione delle prestazioni” al posto di “performance tuning”, la traduzione di performance secondo me non fa una piega ed è prestazioni, ma per “tuning” sono incerto. Google lo traduce con “sintonizzare” che decisamente non va. Il dizionario di Sapere.it fa meglio dando come possibili traduzioni i termini “accordatura”, “sintonia” e “messa a punto”. Quest’ultimo sembra il più adatto (non una singola parola però). “Messa a punto delle prestazioni” : non mi convince ancora. Sono contrariato dal fatto che si diffonda sempre di più l’abuso di termini inglesi nel linguaggio italiano, sopratutto i consulenti ne fanno un gran uso per dare maggior enfasi alle loro argomentazioni. In testa alla classifica del peggior termine utilizzato pongo la parola “performante”. Mi fa schifo solo a scriverla; credo di aver sentito questo termine per la prima volta dal pilota di formula uno Alain Prost, quando correva ancora con la Ferrari. Posso scusare un francese che usa un termine simile ma lo trovo particolarmente brutto quando viene usato da un italiano in un discorso in italiano. Tutto questo preambolo è per chiedere scusa della mia incoerenza quando scrivo ed alterno termini inglesi e italiani. Nel caso di “performance tuning” mi concedo la licenza di continuare ad usare il termine inglese in mancanza di una traduzione soddisfacente.

Definisco come “performance tuning” l’attività volta a migliorare le prestazioni, nel caso specifico, di database server Oracle. Migliorare le prestazioni di un database server non vuol dire altro che ridurre il tempo che lo stesso impiega a rispondere alle richieste, quindi restituire i dati i risposta ad una query (altro termine inglese!) nel tempo più breve possibile (relativamente alla quantità di dati).

Quello che mi lascia perplesso nel confrontare la mia esperienze con la letteratura al riguardo è il fatto che gli esperti che scrivono sull’argomento danno per assodato la possibilità di riprodurre situazioni di carico su un database su cui fare l’attività di performance tuning. Solitamente viene fatto il banale esempio della query x che ci mette y secondi. Nella mia esperienza, con un applicazione OLTP con qualche funzionalità vicina a quello che Oracle chiama DSS (Decision Support System ossia sistema di supporto alle decisioni) che in qualche modo è molto vicino al “datawarehouse”. In realtà l’applicativo ha delle funzionalità di reportistica che fanno un accesso a una grossa quantità di dati. Facendola breve il nostro cliente ha circa 300 utenti che accedono all’applicazione. In condizioni di basso carico il database risponde molto bene, superata una certa soglia di carico, non ben definita, anche query normalmente veloci (tempo di risposta < 1 sec.) rispondono in tempi superiori a qualche secondo. A parte tutte le prediche sull’applicazione e sulle query scritte correttamente, prediche che fanno da preambolo a qualunque libro di “performance tuning”, dovendo io partire dal presupposto che da quel lato sia stato fatto tutto il possibile ho analizzato per molto tempo il sistema per determinare dove fosse il problema. Tutti gli indizzi, eventi di wait sul database (V$session_wait,v$system_event, V$session_event,V$filestat) e wait a livello di sistema operativo mi hanno sempre fatto sospettare che il collo di bottiglia fosse l’accesso ai dischi (in lettura). Qualcuno potrebbe obbiettare che questa conclusione è scontata senza tante analisi, si sa che la componente lenta di un computer è tutt’ora il disco. In realtà il vero sospetto è che oltre un certo carico la risora dischi venga saturata, ma come dimostrarlo? Per lungo tempo l’amministratore della SAN su cui risiede il database ha sostenuto che il flusso di dati era al di sotto della banda garantita dalla SAN. Sta di fatto che riorganizzando un po i dischi (non so in che modo, ma comunque aumentando le meccaniche) il problema si è attenuato. Per lungo tempo ho cercato un dato di riferimento con cui confrontare i dati sulle prestazioni del sistema di I/O con quelli rilevati dagli strumenti di diagnostica del sistema operativa, ma senza successo. Soprattuto non riuscivo a capire se i dati ottenuti da V$FILESTAT fossero buoni o meno. Alla fine come detto una riorganizzazione dei dischi ha attenuato il problema distogliendomi da ulteriori analisi, quindi tutt’ora non so se un tempo medio di attesa di 20msec. su un datafile sia buono o no.

1 commento »

RSS feed for comments on this post. TrackBack URI

  1. test


Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Crea un sito o un blog gratuitamente presso WordPress.com.
Entries e commenti feeds.

%d blogger cliccano Mi Piace per questo: