ASH Simulator

mercoledì 8 aprile 2009 alle 08:28 | Pubblicato su Performance Tuning | Lascia un commento
Tag: , ,

Fra i vari strumenti di diagnostica e analisi introdotti nella versione 10g del database Oracle vi è il cosiddetto Active Session History (ASH), uno strumento per quello che si definisce “Reactive Database Tuning“. Per una spiegazione più chiara e precisa rimando alla documentazione Oracle (anche se questa non è proprio dettagliata), o meglio alle presentazioni di uno degli ideatori di ASH: Kyle Hailey.

L’idea è quella di campionare, ogni secondo, le sessioni “attive”, registrando cosa stanno facendo. Una sessione può essere in tre stati:

1) inattiva, non sta facendo nulla

2) attiva e sulla CPU, sta elaborando

3) attiva e in attesa, ovvero sta aspettando qualcosa per c0ncludere l’elaborazione, ad esempio sta aspettando un blocco dati da disco.

Un processo di background (MMNL, manageability monitor light) si occupa di fare questo campionamento, salvando i dati in un’area della SGA che è pubblicata attraverso una vista chiamata V$ACTIVE_SESSION_HISTORY. Una parte di questi dati viene poi salvata in AWR.

Si un tratta in sostanza di interrogare continuamente la vista V$SESSION e vedere se ci sono query, sessioni, eventi che ricorrono di più per capire se ci sono problemi di prestazioni, il tutto tuto poi è analizzabile facilmente con i grafici visualizzati sull’Enterprise Manager. E’ un’idea, quella di interrogare la vista V$SESSION, che gia in passato ho utilizzato proprio per far fronte a richieste urgenti di verificare problemi di prestazioni sul database (il reactive database tuning appunto), solo che io mi limitavo a interrogare la V$SESSION, in join con la V$SESSION_WAIT (era oracle 9.2, dove le informazioni sull’evento di attesa non erano ancora presenti nella V$SESSION) e la V$SQL, senza salvare i dati, analizzavo quindi la situazione istantaneamente. ASH fa molto di più.

Il problema di ASH è che per essere utilizzato richiede la “Diagnostic Pack License”. E’ per questo che circa un’anno fa mi piacque molto l’iniziativa di Kyle Hailey: un simulatore di ASH, utilizzabile in versioni Oracle precedenti alla 10g o in versioni senza la licenza necessaria per ASH. Sono passati diversi mesi e finalmente alcune settimane fa ho avuto l’occasione/necessità di provare il pacchetto di simulazione.

In realtà ho fatto alcune modifiche al simulatore per adattarlo alle mie esigenze, l’ho installato sul server stesso, togliendo quindi i  database link. Inoltre l’ambiente in cui mi serviva era un RAC, quindi ho dovuto modificare le tabelle (e di conseguenza le procedure) per gestire anche l’istanza, mantenendo l’utilizzo delle viste GV$, che nel pacchetto originario sono utilizzate perché l’interrogazione delle viste tramite database link pare genere un errore ORA-02070. Ho fatto anche ulteriori modifiche per aggiungere maggior granularità alle informazioni raccolte, distinguendo per i vari statement i  vari “child cursor” ed ho aggiunto anche il SQL_ID (probabilmente non incluso nel package originario perché nato per versioni precedenti alla 10g).

Le procedure, oltre a raccogliere le informazioni sulle sessioni attive (ASH “puro”) raccolgono anche, a intervalli diversi, le informazioni sugli oggetti (io le raccolgo una volta al giorno), e le informazioni sugli statement (V$SQL, V$SQL_PLAN, V$SQLTEXT, ogni mezz’ora). Ho messo tutto su un utente SASH a cui ho dato solo i privilegi necessari a interrogare tutte le viste di sistema necessarie; per come sono scritte le procedure originali esse andrebbero messe su uno schema privilegiato, come SYS.

Dopo un po’ di messa a punto sono riuscito ad utilizzare con soddisfazione questo simulatore e ho voluto confrontarlo con l’ASH integrato di Oracle 10g, vi sono alcune differenze, ma per le mie esigenze trascurabili. Sono rimasto più perplesso dal confronto con i grafici e le tabelle visualizzati nella sezione “Top Activity” (attività principale) che secondo le presentazioni di Hailey dovrebbero essere basate su ASH.

Informazione di servizio: Seminario

venerdì 22 agosto 2008 alle 22:56 | Pubblicato su Diario, Performance Tuning | 6 commenti
Tag: , , ,

Evidentemente ho un certo sesto senso; due giorni fa ho aggiunto al mio “blogroll” e segnalato esplicitamente con un post il link al sito di Kyle Hailey. Ieri sera mi è arrivata una “newletter” da Oracle University in cui spicca (almeno a me è subito balzato all’occhio) la notizia che Oracle University ha organizzato per il 13 e 14 Ottobre prossimi un seminario tenuto proprio da Kyle Hailey. Seguendo il link si trovano tutte le informazioni. L’anno scorso (più meno nello stesso periodo mi pare) ci fù Jonathan Lewis, bisogna quindi ammettere che in qualche modo Oracle University Italia organizza delle cose interessanti. Purtroppo (sigh, sob ,sigh e strasob) ho poche possibilità di partecipare a un tale evento, anche se mi piacerebbe molto. Purtroppo nella mia situazione lavorativa è già stato un privilegio partecipare al corso “Oracle Database 10g: Workshop Administration II” per conseguire la certificazione OCP.

In ogni caso mi sembra giusto segnalare l’evento che interessa chiunque voglia approfondire al tematica del performance tuning.

Un’altra fonte di informazioni su “Performance Tuning”

mercoledì 20 agosto 2008 alle 20:22 | Pubblicato su Diario, Performance Tuning | 3 commenti
Tag: , ,

Già qualche mese fa (Alex Gorbachev l’annunciò il 22 Maggio scorsoKyle Hailey ha varato un nuovo sito web dedicato interamente ad ASH, il sito è intitolato “ASH Masters“. Solo oggi, dopo un po’ di tempo, sono ripassato sia sul sito perfvision.com sia su ashmasters.com e dopo aver dato un’occhiata ai documenti pubblicati mi sono deciso ad aggiungere tale sito nel mio blogroll.  La posizione è l’ultima, la 16 ma solo perchè non voglio stare a cambiare tutta la numerazione, non certo per importanza. La quantità e la qualità del materiale disponibile sia sul sito ASH Masters e perfvision.com è notevole per cui non potevo esimermi dal segnalare tale fonte. L’argomento è come anticipato nel titolo “performance tuning”. Kyle Hailey è un esperto in analisi delle prestazioni di database Oracle e in particolar modo è concentrato sulla divulgazione della potenzialità delle informazioni disponibili attraverso quella nuova caratteristica introdotta con Oracle 10g chiamata “Active Session History (ASH)”.

Sul suo sito vi sono numerose “presentazioni” relative ai seminari tenuti da lui incentrati sull’analisi delle prestazioni su database Oracle. In più Kyle Hailey mette a disposione dei tool per simulare ASH senza dover acquisire costosissime licenze. Invito quindi chiunque sia interessato all’argomento a visitare i due siti e visionare la documentazione pubblicata.

Crea un sito o un blog gratuitamente presso WordPress.com. | The Pool Theme.
Entries e commenti feeds.

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 71 follower