Saturday 11 November 2017

Moving Media Oracle


Le medie mobili - semplice e medie mobili esponenziali - semplice ed esponenziale Introduzione Medie mobili lisciare i dati sui prezzi in modo da formare una tendenza seguente indicatore. Essi non prevedere la direzione dei prezzi, ma piuttosto definiscono la direzione della corrente con un certo ritardo. Le medie mobili in ritardo perché si basano sui prezzi passati. Nonostante questo ritardo, medie mobili rendere più agevole l'azione dei prezzi e filtrare il rumore. Formano anche le basi per molti altri indicatori e sovrapposizioni tecniche, come le bande di Bollinger. MACD e il McClellan Oscillator. I due tipi più popolari di medie mobili sono la media mobile semplice (SMA) e la media mobile esponenziale (EMA). Queste medie mobili possono essere usate per identificare la direzione del trend o definire potenziali livelli di supporto e resistenza. Here039s un grafico sia con un SMA e di un EMA su di esso: mobile semplice calcolo della media Una media mobile semplice è formata calcolando il prezzo medio di un titolo su un determinato numero di periodi. La maggior parte delle medie mobili si basano sui prezzi di chiusura. Una media mobile semplice di 5 giorni è la somma di cinque giorni dei prezzi di chiusura diviso per cinque. Come suggerisce il nome, una media mobile è una media che si muove. Vecchio dati si interrompe come nuovi dati viene disponibili. Questo fa sì che la media di muoversi lungo la scala temporale. Di seguito è riportato un esempio di una 5 giorni di media mobile evoluzione nell'arco di tre giorni. Il primo giorno della media mobile copre semplicemente gli ultimi cinque giorni. Il secondo giorno della media mobile scarta il primo punto di dati (11) e aggiunge il nuovo punto di dati (16). Il terzo giorno della media mobile continua facendo cadere il primo punto di dati (12) e aggiungendo il nuovo punto di dati (17). Nell'esempio precedente, i prezzi aumentano gradualmente dal 11 al 17 per un totale di sette giorni. Si noti che la media mobile si alza anche dal 13 al 15 nel corso di un periodo di calcolo di tre giorni. Si noti inoltre che ogni valore della media mobile è appena sotto l'ultimo prezzo. Ad esempio, la media mobile per il primo giorno è uguale a 13 e l'ultimo prezzo è 15. I prezzi delle precedenti quattro giorni erano più bassi e questo fa sì che la media mobile di lag. Mobile esponenziale calcolo medio medie mobili esponenziali a ridurre il ritardo, applicando un peso maggiore ai prezzi recenti. La ponderazione applicata al prezzo più recente dipende dal numero di periodi in media mobile. Ci sono tre passi per il calcolo di una media mobile esponenziale. In primo luogo, calcolare la media mobile semplice. Una media mobile esponenziale (EMA) deve cominciare da qualche parte in modo da una media mobile semplice è usato come il precedente period039s EMA nel primo calcolo. In secondo luogo, calcolare il moltiplicatore ponderazione. In terzo luogo, calcolare la media mobile esponenziale. La formula che segue è un EMA 10 giorni. Una media mobile esponenziale a 10 periodi si applica una ponderazione 18.18 al prezzo più recente. A EMA 10-periodo può anche essere chiamato un 18.18 EMA. A EMA a 20 periodi si applica un peso di 9.52 per il prezzo più recente (2 (201) 0,0952). Si noti che il coefficiente per il periodo di tempo più breve è maggiore della ponderazione per il periodo di tempo più lungo. Infatti, la ponderazione scende della metà ogni volta che si spostano doppie medi di periodo. Se si vuole noi una percentuale specifica di un EMA, è possibile utilizzare questa formula per convertirlo in periodi di tempo e quindi immettere il valore come parametro EMA039s: Di seguito è riportato un esempio di foglio di calcolo di un 10 giorni di media mobile semplice e di un 10- giorno medio mobile esponenziale per Intel. Semplici medie mobili sono dritto in avanti e richiedono poca spiegazione. La media di 10 giorni si sposta semplicemente come nuovi prezzi disponibili e prezzi vecchi scendere. La media mobile esponenziale inizia con il semplice valore media mobile (22.22) nel primo calcolo. Dopo il primo calcolo, la formula normale riprende. Perché un EMA inizia con una media mobile semplice, il suo vero valore, non sarà realizzato fino a 20 o giù di periodi successivi. In altre parole, il valore sul foglio di calcolo Excel può differire dal valore grafico a causa del periodo di sguardo-back breve. Questo foglio di calcolo va solo indietro di 30 periodi, il che significa l'effetto della semplice media mobile ha avuto 20 periodi a dissipare. StockCharts risale almeno 250-periodi (tipicamente molto maggiori) per i suoi calcoli così gli effetti della media mobile nel primo calcolo sono completamente dissipata. Il GAL Factor Più lunga è la media mobile, più il ritardo. Una media mobile esponenziale a 10 giorni sarà abbracciare prezzi abbastanza da vicino e girare poco dopo che i prezzi girano. medie mobili brevi sono come barche di velocità - agile e veloce da cambiare. Al contrario, una media mobile di 100 giorni contiene un sacco di dati passato che lo rallenta. le medie più in movimento sono come cisterne oceano - letargico e lento a cambiare. Ci vuole un movimento di prezzo più grande e più a lungo per una 100 giorni di media mobile a cambiare rotta. Il grafico in alto mostra la 500 ETF SampP con 10 giorni EMA strettamente seguenti prezzi e una SMA di 100 giorni di rettifica superiore. Anche con il calo di gennaio-febbraio, i 100 giorni SMA ha tenuto il corso e non si voltò verso il basso. L'50 giorni di SMA si inserisce da qualche parte tra il giorno 10 e 100 medie mobili quando si tratta di fattore di ritardo. Semplice vs mobile esponenziale Medie Anche se ci sono chiare differenze tra semplici medie mobili e le medie mobili esponenziali, uno non è necessariamente migliore dell'altra. medie mobili esponenziali hanno meno lag e sono quindi più sensibili ai prezzi recenti - e recenti cambiamenti di prezzo. medie mobili esponenziali si trasformerà prima semplici medie mobili. Semplici medie mobili, dall'altro, rappresentano un vero valore medio dei prezzi per l'intero periodo di tempo. Come tale, semplici medie mobili possono essere più adatto per identificare i livelli di supporto o di resistenza. Spostamento di preferenza media dipende da obiettivi, lo stile analitico e orizzonte temporale. Chartists dovrebbero sperimentare con entrambi i tipi di medie mobili, nonché diversi orizzonti temporali, per trovare la soluzione migliore. Il grafico sottostante mostra IBM con il 50 giorni di SMA in rosso e il 50 giorni di EMA in verde. Sia ha raggiunto un picco a fine gennaio, ma il calo del EMA era più nitida rispetto al calo del SMA. L'EMA alzato a metà febbraio, ma la SMA ha continuato inferiore fino alla fine di marzo. Si noti che la SMA alzato più di un mese dopo l'EMA. Lunghezze e tempi La lunghezza della media mobile dipende dagli obiettivi analitici. medie mobili a breve (5-20 periodi) sono più adatti per le tendenze a breve termine e il commercio. Chartists interessati nelle tendenze a medio termine sarebbe optare per le medie più in movimento che potrebbe estendersi 20-60 periodi. investitori a lungo termine preferiranno medie mobili con 100 o più periodi. Alcuni lunghezza media in movimento sono più popolari di altri. La media mobile a 200 giorni è forse il più popolare. A causa della sua lunghezza, questo è chiaramente un media mobile di lungo termine. Successivamente, la media mobile a 50 giorni è molto popolare per la tendenza a medio termine. Molti chartists utilizzano le medie di 50 giorni e 200 giorni in movimento insieme. A breve termine, una media mobile di 10 giorni era molto popolare in passato perché era facile da calcolare. Uno semplicemente aggiunti i numeri e si è trasferito il punto decimale. Trend di identificazione Gli stessi segnali possono essere generati utilizzando medie mobili semplici o esponenziali. Come notato sopra, la preferenza dipende da ogni individuo. Questi esempi di seguito utilizzeranno entrambe le medie mobili semplici ed esponenziali. La media termine in movimento si applica sia alle medie mobili semplici ed esponenziali. La direzione della media mobile trasmette informazioni importanti sui prezzi. Una media mobile aumento dimostra che i prezzi sono generalmente in aumento. Una media mobile calo indica che i prezzi, in media, sono in calo. Un aumento a lungo termine media mobile riflette un trend rialzista a lungo termine. A lungo termine si muove cadere media riflette una tendenza al ribasso a lungo termine. Il grafico in alto mostra 3M (MMM) con una media mobile esponenziale a 150 giorni. Questo esempio dimostra quanto bene medie mobili funzionano quando la tendenza è forte. I 150 giorni di EMA ha respinto nel novembre 2007 e nuovamente nel gennaio 2008. Si noti che ci sono voluti un calo del 15 per invertire la direzione di questa media mobile. Questi indicatori in ritardo di sviluppo identificano le inversioni di tendenza in cui si verificano (nella migliore delle ipotesi) o dopo che si verifichino (nel peggiore dei casi). MMM continuato inferiore nel marzo 2009 e poi è salito 40-50. Si noti che i 150 giorni EMA non girare fino a dopo questa ondata. Una volta lo ha fatto, tuttavia, ha continuato MMM superiore i prossimi 12 mesi. Le medie mobili funzionano brillantemente nelle tendenze forti. Doppia Crossover due medie mobili possono essere utilizzati insieme per generare segnali di crossover. In Analisi tecnica dei mercati finanziari. John Murphy chiama questo il metodo della partita doppia crossover. crossover doppie comporta uno relativamente breve media mobile e una media relativamente lunga in movimento. Come con tutti i media mobile, la lunghezza complessiva della media mobile definisce i tempi per il sistema. Un sistema che utilizza un EMA 5 giorni e 35 giorni EMA sarebbe ritenuto breve termine. Un sistema che utilizza un 50 giorni di SMA e 200 giorni SMA sarebbe considerato a medio termine, forse anche a lungo termine. Un crossover rialzista si verifica quando i più brevi in ​​movimento croci sopra la media la media più in movimento. Questo è anche conosciuto come una croce d'oro. Un crossover ribassista si verifica quando i più brevi in ​​movimento croci bassi rispetto alla media più in movimento. Questo è noto come una croce morto. In movimento crossover media producono segnali relativamente tardi. Dopo tutto, il sistema impiega due indicatori in ritardo di sviluppo. Più lungo è il movimento periodi medi, maggiore è il ritardo nei segnali. Questi segnali grande lavoro quando un buon andamento prende piede. Tuttavia, un sistema di crossover media mobile produrrà un sacco di whipsaws in assenza di una forte tendenza. Vi è anche un metodo di crossover tripla che prevede tre medie mobili. Ancora una volta, un segnale viene generato quando la media più breve mobile attraversa le due medie più mobili. Un semplice sistema a tre di crossover potrebbe coinvolgere 5 giorni, 10 giorni e 20 giorni medie mobili. Il grafico in alto mostra Home Depot (HD) con un EMA a 10 giorni (linea verde tratteggiata) e 50 giorni di EMA (linea rossa). La linea nera è il quotidiano vicino. Utilizzando un crossover media mobile avrebbe comportato tre whipsaws prima di prendere un buon mestiere. Il 10-giorni EMA ha rotto al di sotto dei 50 giorni EMA alla fine di ottobre (1), ma questo non durò a lungo come il 10-giorni è tornato sopra a metà (2) novembre. Questa croce è durato più a lungo, ma il prossimo incrocio ribassista a (3) Gennaio si è verificato nei pressi di novembre i livelli di fine dei prezzi, con conseguente un'altra whipsaw. Questo cross ribassista non durò a lungo, come i 10 giorni di EMA è tornato sopra i 50 giorni di pochi giorni dopo (4). Dopo tre segnali cattivi, il quarto segnale prefigurato una mossa forte come il magazzino avanzato oltre 20. Ci sono due take away qui. In primo luogo, crossover sono inclini a Whipsaw. Un filtro di prezzo o di tempo può essere applicata per aiutare a prevenire whipsaws. I commercianti potrebbero richiedere il crossover durare 3 giorni prima di agire o richiedere i 10 giorni di EMA per spostare il abovebelow 50 giorni EMA da una certa quantità prima di agire. In secondo luogo, MACD può essere utilizzato per identificare e quantificare questi crossover. MACD (10,50,1) mostrerà una linea che rappresenta la differenza tra le due medie mobili esponenziali. MACD diventa positivo nel corso di una croce d'oro e negativo nel corso di una croce morto. La percentuale Price Oscillator (PPO) può essere utilizzato allo stesso modo per mostrare le differenze percentuali. Si noti che MACD e il PPO si basano su medie mobili esponenziali e non corrisponderanno con semplici medie mobili. Questo grafico mostra Oracle (ORCL), con il 50 giorni EMA, EMA 200 giorni e MACD (50,200,1). Ci sono stati quattro in movimento crossover medi per un periodo di 2 di 12 anni. I primi tre provocato whipsaws o mestieri male. Una tendenza sostenuta iniziata con la quarta di crossover come ORCL avanzate per metà degli anni '20. Ancora una volta, in movimento crossover medi grande lavoro quando la tendenza è forte, ma producono perdite in assenza di una tendenza. Prezzo Crossover Le medie mobili possono essere utilizzati anche per generare segnali con semplici crossover di prezzo. Un segnale rialzista viene generato quando i prezzi si muovono al di sopra della media mobile. Un segnale ribassista è generato quando i prezzi si muovono al di sotto della media mobile. crossover prezzo possono essere combinati per scambi all'interno della tendenza più grande. La media è più in movimento dà il tono per la tendenza più grande e la media mobile più breve è utilizzato per generare i segnali. Si potrebbe guardare per incroci rialzisti dei prezzi solo quando i prezzi sono già al di sopra della media più in movimento. Questo sarebbe la negoziazione di sintonia con la tendenza più grande. Ad esempio, se il prezzo è al di sopra della media mobile a 200 giorni, chartists si concentrerà unicamente su segnali quando il prezzo si muove al di sopra del 50 giorni di media mobile. Ovviamente, una mossa al di sotto della media mobile a 50 giorni sarebbe precedere tale segnale, ma tali cross ribassisti verrebbe ignorato perché la tendenza più grande è alto. Un cross ribassista sarebbe semplicemente suggerire un pullback all'interno di un trend al rialzo più grande. Una croce di nuovo al di sopra della media mobile a 50 giorni segnalerebbe una ripresa dei prezzi e continuazione del trend rialzista più grande. Il grafico seguente mostra Emerson Electric (EMR) con la 50 giorni EMA e 200 giorni EMA. Il titolo è passato sopra e tenuto al di sopra della media mobile a 200 giorni nel mese di agosto. Ci sono stati cali al di sotto del 50 giorni EMA ai primi di novembre e di nuovo all'inizio di febbraio. I prezzi si muovevano rapidamente indietro al di sopra del 50 giorni EMA a fornire segnali rialzisti (frecce verdi) in armonia con il trend rialzista più grande. MACD (1,50,1) viene visualizzato nella finestra dell'indicatore di confermare croci di prezzo sopra o sotto il 50 giorni EMA. L'EMA di 1 giorno è uguale al prezzo di chiusura. MACD (1,50,1) è positivo quando la chiusura è superiore al 50 giorni EMA e negativo quando la chiusura è inferiore al 50 giorni EMA. Supporto e resistenza Le medie mobili possono anche fungere da supporto in una tendenza rialzista e resistenza in un trend al ribasso. Un trend rialzista di breve termine potrebbe trovare supporto nei pressi della media mobile semplice a 20 giorni, che viene utilizzato anche in bande di Bollinger. Un trend rialzista di lungo termine potrebbe trovare supporto nei pressi della media mobile semplice a 200 giorni, che è il più popolare media mobile di lungo periodo. Se, infatti, la media mobile a 200 giorni può offrire supporto o resistenza semplicemente perché è così ampiamente usato. E 'quasi come una profezia che si autoavvera. Il grafico qui sopra mostra il NY Composite con la semplice media mobile a 200 giorni a partire da metà 2004 fino alla fine del 2008. Il 200 giorni fornito un supporto più volte durante l'avanzata. Una volta che la tendenza si è invertita con una doppia interruzione di supporto superiore, la media mobile a 200 giorni ha agito come resistenza intorno a 9500. Non aspettatevi esatti livelli di supporto e resistenza da medie mobili, in particolare più medie mobili. I mercati sono guidati dalle emozioni, che li rende inclini a superamenti. Invece di livelli precisi, medie mobili possono essere utilizzati per individuare le zone di supporto o di resistenza. Conclusioni I vantaggi di usare medie mobili devono essere pesati contro gli svantaggi. Le medie mobili sono trend following, o in ritardo, gli indicatori che saranno sempre un passo indietro. Questo non è necessariamente una brutta cosa, però. Dopo tutto, il trend è tuo amico, ed è migliore per il commercio nella direzione del trend. Le medie mobili assicurare che un trader è in linea con l'attuale tendenza. Anche se la tendenza è tuo amico, titoli trascorrono gran parte del tempo in trading range, che rendono inefficace medie mobili. Una volta in un trend, medie mobili vi terrà in, ma anche dare segnali in ritardo. Don039t si aspettano di vendere in alto e compra al fondo utilizzando medie mobili. Come la maggior parte strumenti di analisi tecnica, medie mobili non dovrebbero essere usati da soli, ma in combinazione con altri strumenti complementari. Chartists possono usare le medie mobili per definire la tendenza generale e quindi utilizzare RSI per definire i livelli di ipercomprato o ipervenduto. L'aggiunta di medie mobili a StockCharts Grafici Le medie mobili sono disponibili come funzionalità prezzo sovrapposizione sul SharpCharts banco di lavoro. Utilizzando il menu a discesa Overlay, gli utenti possono scegliere tra una media mobile semplice o una media mobile esponenziale. Il primo parametro viene utilizzato per impostare il numero di periodi di tempo. Un parametro opzionale può essere aggiunto per specificare quale campo di prezzo dovrebbe essere utilizzato nei calcoli - O per l'Open, H per l'Alto, L per la bassa, e C per la chiusura. Una virgola viene utilizzato per i parametri separati. Un altro parametro opzionale può essere aggiunto a spostare le medie mobili al (passato) o di destra (futuro) di sinistra. Un numero negativo (-10) sposterebbe la media mobile a 10 periodi sinistra. Un numero positivo (10) sposterebbe la media mobile a destra 10 periodi. Più medie mobili possono essere sovrapposti trama prezzo semplicemente aggiungendo un'altra linea di sovrapposizione al banco da lavoro. i membri StockCharts possono cambiare i colori e lo stile di distinguere tra più medie mobili. Dopo aver selezionato un indicatore, aprire le Opzioni avanzate facendo clic sul piccolo triangolo verde. Opzioni avanzate può essere utilizzato anche per aggiungere una sovrapposizione di media mobile ad altri indicatori tecnici come RSI, CCI, e Volume. Clicca qui per un grafico in diretta con diverse medie mobili differenti. Utilizzando medie mobili con StockCharts scansioni Qui ci sono alcune scansioni di esempio che i membri StockCharts possono utilizzare per eseguire la scansione di vari mobili situazioni media: Rialzista Moving Average Croce: Questo scansioni ricerca azioni con un aumento di 150 giorni di media mobile semplice ed un cross rialzista del 5 - day EMA e di 35 giorni EMA. La media mobile a 150 giorni è in aumento fino a quando è scambiato sopra del suo livello di cinque giorni fa. Un cross rialzista si verifica quando il 5 giorni EMA si muove al di sopra del 35 giorni EMA sul volume superiore alla media. Bearish Moving Average Croce: Questo scansioni ricerca azioni con un calo di 150 giorni di media mobile semplice e una traversa al ribasso del 5 giorni EMA e di 35 giorni EMA. La media mobile a 150 giorni è in calo fino a quando è scambiato al di sotto del livello di cinque giorni fa. Un cross ribassista si verifica quando il 5 giorni EMA si muove al di sotto del 35 giorni EMA sul volume superiore alla media. Lo studio ulteriore John Murphy039s libro ha un capitolo dedicato a medie mobili ed i loro vari usi. Murphy copre i pro ei contro di medie mobili. Inoltre, Murphy mostra come le medie mobili funzionano con le fasce di Bollinger e sistemi di trading basati canale. Analisi tecnica dei mercati finanziari John murphyi sono stati a guardare un sacco di cose in relazione alla nozione di un'infrastruttura convergente. L'idea essenziale è questo: la piattaforma legacy, vale a dire una singola immagine di un server avviato fisicamente, in genere collegato a una SAN, è irrimediabilmente obsoleta. Questo disegno è essenzialmente 30 anni, e non tiene conto dei molti cambiamenti tecnologici interessanti, in particolare: la virtualizzazione di storage di deduplicazione Flash, tra cui Flash e SSD PCIe basata Pertanto, la piattaforma Converged Infrastructure appare drammaticamente diverso dalla piattaforma legacy. Essenzialmente, un'infrastruttura convergente consiste di un grande cluster. Un sottosistema IO cluster è esteso in tutti i nodi di questo cluster, e tutto IO per questo file system si riflette su tutti i nodi. Questo è sia implementato nel blocco o il file (NFS), in base al fornitore interessato. Tutto l'hardware di storage è direct attached. No SAN, in altre parole. Così, un'infrastruttura convergente è stato progettato per il consolidamento dei data center, simile al mercato della virtualizzazione hypervisor. Alcuni dei fornitori di infrastrutture convergenti girare nativamente su un hypervisor, e altri no. Più su questo più tardi. Il mercato delle infrastrutture convergenti è affollato, that8217s di sicuro. Sarebbe difficile in un blog come questo per coprire tutti loro, quindi mi concentrerò su tre: E, naturalmente, la mia attenzione è rivolta allo spazio Oracle. Come al solito, penso che in termini di esecuzione di Oracle nel modo più efficiente ed economico possibile. Inoltre, in termini di hypervisor, affronterò solo VMware. (Non ho l'esposizione tecnica per Hyper-V o KVM.) A partire con Nutanix, l'architettura è meglio descritto nella Bibbia Nutanix da Steven Poitras. Ho un po 'rielaborato uno dei suoi grafica in modo da riflettere i miei pregiudizi, di nuovo Oracle su VMware: In sostanza, tutti Nutanix8217s IP viene eseguito in una macchina virtuale, denominato CVM. L'hypervisor e il bagagliaio CVM fuori di una piccola partizione. Poi il CVM si collega agli altri nodi del cluster Nutanix, e monta un file system cluster, che viene pubblicato come un'esportazione NFS. L'hypervisor allora monta questa esportazione come un archivio dati NFS. Da lì, tutto lo spazio utente VM (tra cui Oracle VM) sono avviato al largo di file. vmdk sul datastore NFS. Tutto a livello di blocco IO (diverso da quello di avvio) è gestito dal CVM tramite il controller SCSI virtualizzato. Ancora una volta, questo è dal punto di vista di VMware. Le architetture di altri hypervisor sono diversi. Ma sto divagando. Trasferirsi in Simplivity, la mia fonte per il loro materiale tecnico sarebbe la OmniCube tecnico Deep Dive. (A 10 pagine, questa immersione profonda non è così profondo come io preferirei, di sicuro.) L'architettura Simplivity è molto simile a Nutanix, sotto molti aspetti tranne uno: Simplivity aggiunge un pezzo di hardware che chiamano la Scheda di accelerazione OmniCube (OAC). In caso contrario, lo schema per Simplivity sembra proprio come Nutanix: Anche in questo caso, tutti Simplivity8217s IP viene eseguito in OVC VM, oltre al OAC stesso, naturalmente. Il OAC è una scheda PCIe su misura, che tra l'altro funge da IO Controller. Come Nutanix, l'OVC esporta un mount NFS, che ESXi monta come un archivio dati NFS. Da lì, tutto lo spazio utente IO, tra cui Oracle, attraversa lo strato. vmdk all'interno dell'hypervisor. Ora, guardando ScaleiO, l'architettura è drammaticamente diverso da entrambi Nutanix o Simplivity. Prima di tutto, Nutanix e Simplivity sono entrambi piattaforme hardware, complete di hardware su misura. ScaleiO è un pezzo di software. È stato progettato per essere a strati in cima ad una piattaforma legacy, e fornire una chiazza di petrolio, facile percorso di un'infrastruttura convergente. In particolare, ScaleiO non richiede l'uso di un hypervisor, e quindi in grado di funzionare in un contesto fisico-avviato. Questo è uno dei vantaggi principali ScaleiO8217s oltre hypervisor-based piattaforme convergenti come Nutanix e Simpivity. ScaleiO è costituito da due componenti principali: il client ScaleiO dati (DSC) e la ScaleiO Data Server (SDS). In un contesto di Linux (ancora una volta, l'unico sistema operativo che mi interessa profondamente), sia la SDS e la DSC sono implementate come kernel caricabili moduli, simile ai driver di periferica. L'SDS gestisce l'hardware di storage locale, si collega con altri nodi al cluster ScaleiO, esegue la coerenza della cache, ecc La DSC si collega alla SDS, che sembra come una destinazione SCSI. Così, la SDS pubblica oggetti in memoria alla DSC, che il sistema operativo locale vede come LUN. Da lì, il sistema operativo locale esegue semplicemente normale IO. Il diagramma di stack per un nodo di cluster ScaleiO fisicamente avviato, non potrebbe essere più semplice: ScaleiO può essere eseguito anche in un contesto virtualizzato. In questo caso, prevedibilmente, ScaleiO sembra molto simile a Nutanix o Simplivity, in quanto ha un controller VM pure, chiamato ScaleiO VM (SVM). Questo SVM gestisce sia l'SDS e il DSC. Tutti IO viene incanalata attraverso la SVM. Tuttavia, tutto in ScaleiO è implementato in un blocco, piuttosto che di file, modalità. Così, l'hypervisor ESXi vede un pool di storage a blocchi, che si trasforma in un file system VMFS, piuttosto che utilizzare NFS. (Il SVM fornisce un target iSCSI per questo scopo.) Ecco come ScaleiO appare in una configurazione virtualizzata: L'altra cosa interessante di ScaleiO è che permette di eseguire sia in un convergente o maniera divergevano. Dal momento che il cliente (DSC) e il server (SDS) sono componenti separati, è possibile girare su hardware separato, trasformando effettivamente il cluster di server ScaleiO in un array di archiviazione. Vedere il grafico seguente per un esempio (grazie a Kevin Closson per questo): Naturalmente, è anche possibile eseguire ScaleiO in modo convergente, nel qual caso la piattaforma è molto simile Nutanix o Simplivity (con le eccezioni notato). Ora, guardando ciascuna di queste architetture nel contesto di esecuzione Oracle, sembra che ScaleiO ha il bordo ovvia. Questo perché: Sia Nutanix e Simplivity richiedono di virtualizzare in modo da eseguire sulla loro piattaforma. ScaleiO non lo fa. Anche il sostenitore più ardente di virtualizzazione di Oracle (e certamente qualificarsi su questo punto) vorrebbe mantenere l'opzione per l'esecuzione su metallo nudo, se necessario. L'adozione di una piattaforma che non richiede assolutamente il cliente di virtualizzare tutti i carichi di lavoro di Oracle non è probabilmente andando a lavorare per molti clienti Oracle. L'uso di un archivio dati VMware NFS come contenitore primario per lo stoccaggio Oracle è problematico, specialmente in ambito Oracle. Mentre ero con EMC Global Solutions Organization, abbiamo testato datastore NFS per file di dati Oracle. Ha avuto un enorme impatto sulle prestazioni, rispetto a uno normale NFS (cioè montato direttamente sul sistema operativo guest, e l'utilizzo di Oracle diretto client NFS) o di un file system VMFS basata su blocchi, utilizzando storage SAN convenzionale. Non c'è alcuna ragione che questo sarebbe stato diverso in un contesto convergente. Pensaci. Il percorso di codice per un IO su un diskgroup Oracle ASM che viene memorizzato su un file. vmdk che è, a sua volta, su un archivio dati NFS richiede un percorso di codice lunghissima. Confronti che, per ScaleiO, soprattutto in un contesto fisico-avvio, in cui il percorso di codice IO non è più lungo rispetto all'utilizzo di un driver di periferica normale L'approccio discostato per ScaleiO è senza dubbio su misura costruito per Oracle. Ho fatto una buona vita per gli ultimi (circa) 17 anni della mia vita attraverso la comprensione una cosa: Oracle è costoso, e quindi la CPU Oracle con licenza è il pezzo più costoso unico di hardware in tutta la configurazione. Scaricamento qualsiasi lavoro dalla CPU Oracle con licenza su una CPU non-Oracle licenza è in genere una decisione molto redditizio. (Probabilmente, questo è il motivo per cui i server di database Oracle ha adottato la tecnologia storage array così largamente: Scaricando operazioni di utilità come scatta, prova dev clonazione, messa in scena di data warehouse, il backup e simili su un array di storage, il cliente conserva il prezioso CPU Oracle con licenza a fare quello che sa fare meglio:. query RUN) Sia Nutanix e Simplivity richiedono al cliente di eseguire in maniera convergente, utilizzando quindi la CPU Oracle con licenza (sull'host ESXi in questo caso) per eseguire le operazioni di IO di stoccaggio. That8217s spreco di quel prezioso CPU Oracle con licenza. Pertanto, è del tutto possibile che un'infrastruttura convergente può essere una misura povero per Oracle, a causa della semplice economia. Consentendo una configurazione discostato (cioè più simile a un tradizionale array di storage SAN) ScaleiO ottimizza ordinatamente la CPU Oracle. Naturalmente, resta da vedere come tutto questo filtra fuori. It8217s presto. Per ora, però ScaleiO guarda bene a me. Elettrodomestici come forni a microonde, frigoriferi, iPod, iPad e TV sono eccellenti esempi di approccio facilità d'uso. Portando il intrinsecamente complesso mondo del database Oracle insieme con l'approccio facilità d'uso degli apparecchi è impegnativo. Per definizione, se Oracle Exadata è un elettrodomestico, allora il suo uso dovrebbe essere semplice, richiede relativamente poca manutenzione e come un frigorifero fare il suo lavoro che in questo caso viene eseguito banche dati a livelli di prestazioni estreme. Se Oracle Exadata è neanche un apparecchio di quello che è che ho trovato questa domanda molto interessante. Ricordo che ho davvero cresciuto in un ambiente veramente appliance-oriented (NetApp). Vedere i miei primi post del blog per ulteriori informazioni sul mio background a NetApp. Per questo motivo, credo di aver capito quello che un apparecchio è abbastanza bene. A NetApp (e durante i miei primi giorni a NetApp, filer erano veri elettrodomestici di qualsiasi misura), il concetto di elettrodomestico ha fatto sì che il dispositivo è stato un tostapane: Una leva per spingere verso il basso, e una manopola per accendere. That8217s esso. Plug in. Funziona. Nessun passo 2. Cisco veramente avuto origine il termine dell'apparecchio. Il router Cisco ha sostituito la precedente forma di router, che era tipicamente una scatola di UNIX con instradato. Come tale, il router Cisco praticamente definito il concetto di ciò che significa essere un vero apparecchio. La gente a Cisco reso il seguente argomento: Abbiamo bisogno don8217t tutte le infrastrutture di UNIX per fare il routing. Una scatola di UNIX ha a che fare un sacco di cose. Un router in realtà ha solo a che fare una cosa: Networking. Potremmo fare un dispositivo notevolmente semplificata, che sarebbe in grado di fare il routing davvero bene, ad un costo molto più basso di una scatola di UNIX. Sulla base di questo concetto, un apparecchio ha le seguenti caratteristiche: estremamente semplice interfaccia. Dovrebbe essere di gran lunga più semplice di farlo nel modo non-apparecchio. Cioè un router Cisco è di gran lunga più semplice che in esecuzione instradato su una scatola di UNIX. Un unico scopo. Il dispositivo deve essere dedicato a fare una cosa, ma farlo molto bene. Come il modo in cui un router Cisco è molto meglio a fare il routing di una scatola UNIX con instradato. O come il modo in cui un filer NetApp è molto meglio a fare file di NFS che serve di una nfsd scatola di UNIX in esecuzione. Si ottiene l'idea. Riducendo drasticamente il numero di funzioni del dispositivo esegue, è anche ridurre drasticamente la quantità di codice che deve essere eseguito sul dispositivo. (L'originale NetApp ONTAP OS è un sistema operativo a thread singolo a 16 bit con solo pochi 100K di linee di codice.) Questo porta alla prossima caratteristica di un apparecchio che è: notevolmente ridotto costo. Il filer NetApp originale era di circa un dispositivo di 5.000. Una casella di UNIX equivalente utilizzato come file server NFS ha circa 50.000. differenze di costo simili esistevano per i router Cisco vs. macchine UNIX come router. La tecnologia di trasformazione. Un apparecchio, se è veramente un apparecchio, diventa il modo più ovvio e naturale di fare le cose. Entro un breve periodo di tempo dopo l'introduzione del router, Cisco controllava il mercato router. Hanno completamente spostato il precedente modo di fare il routing. La stessa cosa si è verificato nel file serving con NetApp. Da qualsiasi misura ragionevole, Oracle Exadata fallisce tutte queste prove: Ha così complesso un'interfaccia come qualsiasi server di database Oracle (vale a dire si corre il pezzo più complesso e costoso di software mai scritto per uso generale). Certamente non apparecchio simile. Un rack Oracle Exadata contiene server scopo di calcolo generali, che possono essere utilizzati per eseguire praticamente tutto quello che vuoi. È possibile caricare qualsiasi applicazione Oracle su di esso di certo, e nessuno potrebbe affermare che un server di database Oracle è un apparecchio Oracle Exadata è manifestamente più costoso di un server di database normali, open-system, e notevolmente più costosi (supponendo gestione intelligente) di utilizzando VMware vSphere per la virtualizzazione server di database Oracle. Oracle Exadata è forse coinvolgente in senso Big Blue, ma non è certamente una tecnologia trasformativa nello stesso modo in cui un router Cisco, iPad, iPhone, o tale è. In termini di un'analogia che funziona, mi piace usare le auto. Le due aziende del settore auto che producono automobili elettrodomestici sono Honda e Toyota. La Honda Civic è una vettura elettrodomestico, così come la Toyota Camry. In entrambi i casi una di queste vetture fornisce tutti i vantaggi degli apparecchi: Hanno un'interfaccia radicalmente semplificata. Tutto ciò che riguarda queste auto è progettato per rendere loro facile da operare. Poiché sono così semplici, ma sono anche molto affidabili ed efficienti. Sono veicoli per uso singolo. Essi si ottiene dal punto A al punto B. That8217s esso. Nulla di bello. Sono venduti ad un costo molto ragionevole, rispetto a veicoli non appliance (come BMW, Mercedes o per esempio). Una volta che hai guidato una Honda Civic o Toyota Camry, supponendo che si sono un driver dell'apparecchio (e ci sono un sacco persone che sono i driver di elettrodomestici), queste vetture sono completamente coinvolgente. È sufficiente scambiare uno in per il nuovo modello una volta che il vecchio si consuma (e prendono un lungo, lungo tempo di indossare fuori). Ho conosciuto persone che sono state guidando queste vetture (in vari anni di modello) tutta la loro vita. Usando l'analogia macchina, Exadata non è sicuramente una Honda o Toyota. E non è nemmeno una BMW o una Mercedes. Si tratta di una Ferrari. Si tratta di una ingannato fuori, macchina ad alte prestazioni. È molto veloce, senza dubbio. E 'amplificatore costoso. Ed è molto, molto complesso e impegnativo da guidare. Ringraziamenti a Bart Sjerps per questo contenuto. Sembra che ci sia un sacco di confusione sul rilascio delle licenze in cui i clienti considerano l'esecuzione database Oracle su VMware. Parte della confusione è causata da Oracle di proposito (FUD classico) suggerendo di licenza è più costoso rispetto a VMware su server fisici. La realtà couldn8217t essere più diverso 8211 Credo fermamente che molti clienti possono effettivamente risparmiare sulle licenze di database andando virtuale. Ma per capire come raggiungere questo obiettivo, è necessario conoscere alcune cose 8211 io spero di poter chiarire la situazione in una breve spiegazione. Farò la discussione di licenze di database Oracle e di ignorare applicationmiddleware ecc per ora. modelli di licenza I clienti di solito in licenza il loro database di base per uno su tre opzioni: licenza per CPU (core) 8211 i più core della CPU, sono necessari i più licenze. C'è un fattore core a seconda del tipo di CPU e può essere 0.25, 0.5, 0.75 o 1.0. Licenza per utente nominale 8211 gli utenti di più di nome, sono necessari i più licenze. La quantità di CPU8217s non è importante, né la quantità di banche dati totali. In genere una licenza pacchetto per 25 utenti. Enterprise License 8211 il cliente negozia un contratto per l'intera azienda e poi si può distribuire il maggior numero di basi di dati su ben serverscpus come lui vuole. Se un cliente utilizza 2 o 3, allora non importa se corrono virtuale o fisico. Ma ci sono anche nessun risparmio di licenza possibili senza ri-negoziare i loro contratti. Io don8217t voglio arrivare fino a suggerire ai clienti di cambiare i loro modelli di licenza in modo da lasciare questo così com'è per ora. Nella mia esperienza, la maggior parte dei clienti aziendali utilizzano sia le licenze CPU o contratti aziendali. Alcuni hanno diversi metodi di licenza per diverse business unit. Oracle può essere molto creativi nei contratti specifici per il cliente in modo da aspettarsi di trovare una situazione diversa per ogni singolo cliente. Ma let8217s assumono licenza CPU per il bene di questa discussione. supporto amp Manutenzione Gli utenti in genere acquistare le licenze CPU, ma poi devono pagare gli alimenti per il tempo che usano le licenze. costi di manutenzione annuale è di circa 25 di licenza (prezzo di listino). Non ho informazioni su sconti tipici. Mi aspetto che i clienti di ottenere almeno il 50 di sconto sul prezzo di listino (ma solo su licenze, non sulla manutenzione per quanto ne so). Database Edition e opzioni La licenza base di dati pianura è disponibile in 3 versioni (per i server): Standard Edition One 8211 Massimo 2 processori, senza opzioni consentite. utilizzato solo per il test e molto piccole implementazioni Standard Edition (SE) 8211 Massimo 4 processori, senza opzioni consentite. Utilizzato solo per le dimensioni e carichi di lavoro più piccoli (ma restate sintonizzati) Enterprise Edition (EE) 8211 Nessuna limitazione e in cima a EE, si può avere molte caratteristiche in licenza. La maggior parte dei clienti utilizzeranno questo, almeno per i database di produzione in cima alla licenza base di dati di base, la maggior parte dei clienti utilizzano una serie di opzioni, ognuno dei quali richiede ulteriori licenze per CPU. Le opzioni più comuni sono: Real Application Clusters (RAC) 8211 permette a molti server che eseguono lo stesso database (clustering active-active) per consentire scalare le prestazioni e alta disponibilità. Real Application Clusters un nodo 8211 stesso, ma una base di dati può essere eseguito solo su un nodo attivo. Per l'alta disponibilità solo. Attivo Data Guard 8211 replica remota utilizzando il log shipping. Si noti che Data Guard standard è gratuita, ma attivo Data Guard permette al database di standby per essere aperto a scopo di sola lettura e offre alcune funzioni extra. Il partizionamento 8211 permette di tavoli di essere scissi in blocchi più piccoli. Assolutamente necessaria durante l'esecuzione di grandi database e senza tempi di inattività può essere tollerato. Facilita il lavoro dell'amministrazione e offre alcuni vantaggi prestazionali. Real Application Testing 8211 permette carichi di lavoro da registrare e ri-riprodotti su un altro database per fare le prestazioni e le funzionalità di test avanzato di compressione 8211 permette blocchi di database per essere compressi 8211 richiedono meno spazio e aumentando le prestazioni (nella maggior parte dei casi). Diagnostica pacchetto tuning pacchetto 8211 fornisce report automatizzati. Oracle AWR (Advanced Workload Reports 8211 uno strumento di reporting delle prestazioni) fa parte del pacchetto di sintonia. Nella mia esperienza, quasi tutti i clienti hanno partizionamento. La maggior parte dei clienti hanno tuningdiagnostics pacchetto. Alcuni clienti hanno RAC. Alcuni clienti hanno le altre opzioni. Ci sono altre opzioni disponibili, ma questi sono i più comuni. Molti clienti hanno 3 o più opzioni 8211 volte le opzioni costano più della licenza di database di base 8211 soprattutto se usano RAC avranno la maggior parte delle altre opzioni, anche. In esecuzione su un cluster Se un database viene eseguito in un cluster, quindi Oracle assume il database può fare uso di qualsiasi processore nel cluster. Questo è indipendente dal tipo di gruppo viene utilizzato (quindi può essere MSCS, HP MCSG, Vmware, Oracle RAC, ecc). Questo è fondamentalmente il fondamento di tutto FUD e confusione. Ad esempio, se si distribuisce una fattoria VMware (cluster) di 16 server, e tutte le macchine virtuali eseguire tutti i tipi di cose (FilePrint, scambio, applicazioni, etc etc) e solo una piccola macchina virtuale in un angolo, con una sola CPU virtuale gestisce un piccolo database Oracle, ci si aspetterebbe solo a pagare per un core CPU 8211, ma il ragionamento Oracle8217s è che questa piccola VM può essere dinamicamente spostato (VMotion) per tutti i nodi del cluster e su qualsiasi processore. Pertanto, tutti i CPU8217s devono essere con licenza da Oracle. Quindi, in questo caso, l'esecuzione del singolo database su un (piccolo) server fisico sarebbe più conveniente che in esecuzione su una macchina virtuale in azienda. Costo totale della pila In una tipica installazione server di database, il costo della licenza del database è di gran lunga superiore al costo delle licenze del sistema operativo dell'hardware combinati. Non ho numeri è difficile, ma suppongo che il costo di licenza DB medio (più opzioni) è di 10 volte più grande del costo del sistema operativo del server. Così un server 5.000 tipicamente richiederebbe 50.000 su licenze. Allora perché la manutenzione è di 25 ogni anno, il costo totale delle licenze nel corso di un periodo di 3 a 5 anni è ancora più elevata 8211 così per un anno 5 TCO il costo totale di licenza potrebbe essere 75.000 (ipotesi 8211 potrebbe anche essere più vicino a 100.000 8211 e no, didn8217t commette un errore con uno zero in più, Oracle è davvero questo costoso). L'utilizzo è molto difficile dimensioni di una tipica applicazione basata su database Oracle. Non ci sono buoni metodi o calcoli per capire quanta potenza della CPU, del disco IO e la memoria è necessario per eseguire una determinata applicazione. Così, storicamente, i team di progetto formato dei propri server di database per i picchi di carico, e perché non possono predire quanto grande sia il carico di picco è, raddoppiano il 8220just risorse in case8221. Il risultato finale è che la maggior parte dei server di database sono il modo di grandi dimensioni in termini di CPU e memoria. La maggior parte dei server di database distribuiti fisici saranno in media su circa 10-15 carico della CPU (o meno). Tuttavia, essi raggiungeranno il picco a carichi più elevati in certi momenti, come ad esempio lunedi mattina, quando molti utenti il ​​log-in, o quando viene avviato l'elaborazione batch monthquarteryear-end, ecc Poi, i numeri di utilizzo possono essere influenzati da altri compiti dei processori. Alcune cause comuni di 8220artificially high8221 carichi di CPU sui server di database: CPU è coinvolta nella memoria di mirroring (ad esempio livello di host mirroring 8211 utilizzando Oracel ASM o un gestore di volumi Unix) CPU è coinvolta nel trasferimento di file attraverso la rete IP di backup (non senza server, utilizzando CPU, di rete e di larghezza di banda IO) I clienti eseguire il server di applicazione sulla stessa macchina spingendo al rialzo il carico della CPU 8211 Questo può salire carico della CPU da 10 a 90 o più. Lo stesso vale per Middleware e Enterprise Service Bus (Si pensi Oracle BEA, IBM Websphere, SAP Netweaver, ecc) Un gruppo di agenti monitoringmanagement bruciare cicli di CPU (Tivoli, BMC, HP Openview, CA, ecc). Ogni agente forse consumando 1, ma aggiungere in su e si dispone di un altro 5-10 in testa. Gli amministratori di database generano discariche esportazioni ed eseguire i propri report, script e strumenti. Corrono query ad hoc e che non dovrebbe essere in produzione. server di database cattiva regolazione causano il paging e altre spese generali CPU 8211 difficile da diagnosticare ma guidare la CPU e IO in modo significativo. attività di amministrazione di database (riorganizzazioni tavolo, (ri) costruzione degli indici, tabelle di conversione, 8230), e così on8230 Tutti questi causano i processori, costoso licenza per l'elaborazione del database. per fare altre cose. Quindi, se un server esegue a 15 utilizzo, quindi l'utilizzazione causato dal carico di lavoro database stesso potrebbe essere solo il 10 e il resto causata da altre cose (se necessario o meno). Inutile dire che Oracle piace ai clienti di utilizzare i loro costosi CPU8217s licenza per altri compiti perché obbliga ad acquistare CPU supplementare prima e quindi guidare le loro fatturato da licenze. Isn8217t vita grande per un Oracle rappresentante Numero di database maggior parte dei clienti corrono molti database. Per il cliente medio di impresa che visito, 100 database è un numero normale. Un grande globale che ho visitato corre 3000 database Oracle in tutto il mondo (e questo è solo la portata di questo team di progetto specifico). Immaginate il costo di licenza tutti questi database su tutti servers8230 individuale Perché così tanti Beh, i clienti non piace condividere più applicazioni su un database (e spesso questo non è nemmeno supportata). Quindi, se si esegue ERP SAP, Oracle JD Edwards, la propria applicazione bancario e pochi altri, hanno tutti bisogno di un proprio database di produzione. Per ogni database di produzione, si potrebbe trovare un ambiente di accettazione, sistema di test, server di sviluppo, forse una zona di sosta per caricare i dati nel data warehouse, forse un ambiente antincendio, uno standby per DR, un sistema di formazione e così via. I clienti raramente condividere ambienti di produzione sullo stesso server (a meno che non virtualizzato o almeno con la segregazione gestione del carico di lavoro). A volte essi condividono un paio di banche dati per i non-prod su un server. Così, per esempio, 100 banche dati, il cliente medio corre tra i 30 e 50 server (fisici). Potenza di grandi numeri Non richiede scienza razzo per capire che molti di questi database non richiedono prestazioni di picco al tempo stesso. Un sistema di sviluppo spinge in genere il carico di lavoro durante il giorno (quando gli sviluppatori sono: programmare nuove funzionalità applicative). Un data warehouse corre interrogazioni durante il giorno e carichi di sera. Per un sistema di produzione dipende dal processo di business. Un sistema di accettazione potrebbe sedere inattivo per settimane e poi improvvisamente picco per un paio di giorni che si preparano per una nuova distribuzione versione nel sistema di produzione live. E così via. Così che cosa se si potesse condividere le risorse tra i database 8211 senza influenzare i livelli di codice, la sicurezza, la stabilità e così via Se ciò sarebbe possibile 8211 si farebbe non formato per 8220peak tempi di caricamento two8221 più. Si sarebbe formato per quello che ci si aspetta e si assume un utilizzo medio di, diciamo, 70 su tutto il paesaggio. Se un database deve potenza extra, c'è abbastanza disponibili nel paesaggio. Quanto licenza costi molto che ci si salva da ridurre il numero di CPU8217s in modo che l'utilizzo sale da 10 a 70 Quale sarebbe l'effetto sulla alimentazione, raffreddamento, spazio, investimenti hardware, il time-to-market Quale sarebbe il vantaggio di business di non limitare le prestazioni di produzione di un singolo server, da tutto ciò che era di dimensioni durante iniziale di evitare la distribuzione del rischio Quale sarebbe il vantaggio di business di risolvere i problemi futuri di prestazioni semplicemente aggiungendo la versione più recente del server Intel nel cluster e Vmotion il database disturbata sopra Wasn8217t questo proprio per questo abbiamo iniziato la virtualizzazione dei server, in primo luogo circa 8 anni fa e il motivo per cui EMC aquired VMware Wouldn8217t pensi che la media rappresentante Oracle è spaventato a morte quando il suo cliente inizia a considerare per eseguire le sue basi di dati su una virtuale (nuvola) piattaforma Farebbe senso per lui a guidare i suoi clienti impazzire di FUD intorno licenza, supporta i problemi e tutto ciò che può pensare di impedire ai suoi clienti di andare in questo modo anche la minaccia di abbandonare ogni forma di sostegno se continuano a andare in quella direzione Se Oracle ha paura di perdere il fatturato delle licenze , wouldn8217t pensate che ci sia un enorme potenziale di risparmio per i nostri clienti qui il viaggio verso la nuvola database privato Così come dobbiamo fare con questo un paio di punti di partenza: Oracle supporta VMware. Periodo. Qualsiasi altra richiesta di ripetizioni Oracle può essere preso con un grano di sale (per essere più precisi: it8217s sciocchezza). Oracle non certifica VMware. Poi di nuovo, Oracle non certifica nulla, tranne il proprio hardware e software. Ma IMO, il supporto è tutto ciò che serve e la discussione intorno certificazione porta da nessuna parte. Oracle potrebbe chiedere al cliente di ricreare i problemi su un server fisico se sospettano problemi con l'hypervisor. Isn8217t è grande che possiamo farlo facilmente con Replication Manager Oracle supporta solo Oracle RAC su VMware per una versione specifica (11.2.0.2). Qualsiasi altra versione con RAC non è consigliato su VMware a causa di problemi di supporto. Dovrebbe cambiare in futuro. Sia EMC e VMware offrono garanzie di supporto aggiuntivi per i clienti che implementano Oracle su Vmware. Allora, dove Oracle si tira indietro, EMC e VMware potranno risolvere qualsiasi problema in ogni caso. Prestazioni non è più un problema. Con vSphere 5, una singola macchina virtuale può avere 32 processori virtuali, 1 TB di RAM e unità 1 milione di IOPS. Solo i carichi di lavoro più impegnativi, non si adatterebbe in questa impronta. Ma con i clienti in esecuzione centinaia di basi di dati, forse dovremmo iniziare con il 95 che si adattano e realizzare risparmi significativi lì. Con il tempo we8217re fatto, VMware avrà VSphere 6 e chissà cosa succede allora. Come aggirare il problema di licenza Come ho detto, Oracle richiede licenze per tutti i server di un cluster. Quindi, come si fa a limitare il numero di licenze Con la distribuzione di un cluster di Oracle solo VMware. Solo eseguire i database Oracle qui. Nessuna applicazione, senza middleware, nessun file server, e cercano di spostare tutto fuori che non riguardano l'elaborazione del database. No replica ospite, non il mirroring di storage, ecc Diciamo che avete un ambiente legacy con 10 server, ciascuno con 16 core, in modo da avere 160 nuclei concessi in licenza con Oracle EE e una serie di opzioni. carico medio della CPU è 15 ma let8217s assumere 20 ad essere conservatori. Io sostengo che un singolo cluster VMware con 3 server ciascuno con 32 core sarà facile fare il lavoro. Ora abbiamo 3 32 96 core per essere concesso in licenza. 96160 0.6 60 quindi abbiamo risparmiato 40 su licenza subito. Probabilmente il carico medio della CPU sull'intero cluster sarà comunque molto meno di 70 in modo che possiamo aggiungere gradualmente un gruppo più database fino a quando non mediare su 70. Se il vecchio sistema non era in funzione Intel x86, ma SPARC, PA-RISC o cpu8217s POWER poi il fattore di processore è stato probabilmente 1,0 o 0,75. Intel ha 0,5. Così per 96 core (Intel) si avrebbe bisogno di pagare 48 licenze complete. Un altro 33 risparmi. Il risparmio di 40 sulle licenze sarà facile giustificare un investimento di una bella nuova infrastruttura di storage EMC con unità EFD, FAST-VP e tutti gli altri goodies. Pensi che il cliente dovrà spingerci difficile per un prezzo più basso 0,01 GB competere HDS o Netapp se solo li salvato milioni di licenze Oracle Ma la storia non finisce qui. Ulteriori risparmi Let8217s assumono il cliente necessaria elevata disponibilità e prestazioni scale-out ed è stato in esecuzione Oracle RAC. RAC è l'opzione di licenza più costosa e avete bisogno di almeno due per un cluster a due nodi. Ma VMware permette di HA (High Availaiblity raggruppamento) pure. Usando VMware HA, invece di RAC, sarebbe necessario fail-over e recuperare il database in caso di interruzione 8211 se il cliente non può tollerare questo quindi ha bisogno di attaccare con RAC (solo per la missione database critici). Ma la maggior parte i clienti possono vivere con 5 minuti di inattività in caso di una CPU Server non riesce e, in tal caso, la sostituzione RAC con VMware HA può salvare loro un altro grosso mazzo di dollari. Let8217s scontato che con la virtualizzazione si giustificato l'investimento in una bella infrastruttura EMC con unità Flash per sostituire il cambio competitivo. Ora il cluster Oracle non è più limitato da IO8217s di stoccaggio e può guidare più carico di lavoro fuori degli stessi 3 server VMware nel cluster. Ma si può anche sostituire ospite mirroring (se del caso). È possibile implementare backup snapshot per ottenere il carico IO lontano dai server di produzione. È stato rimosso il materiale middleware e le applicazioni dai server di database 8211, riducendo l'utilizzo della CPU e permettendo anche più spazio per il consolidamento DB 8211 il tutto senza l'acquisto di licenze aggiuntive da Oracle. Hai un cliente che vuole ancora di più se si creano due cluster di database per VMware uno per la produzione (in esecuzione Oracle Enterprise Edition (EE) con tutte le opzioni di cui hanno bisogno) e una per non-prod (in esecuzione Oracle Standard Edition (SE) senza opzioni 8211 abbastanza buono per TESTDEV e più piccoli, non mission critical). Scommetto che il numero di database non-prod sarà molto più di prod. Rimuovendo le opzioni costose e si spostano da Enterprise a Standard Edition, è stato salvato un sacco di soldi sulle licenze Oracle come SE è molto più conveniente rispetto EE. Ma essere consapevoli 8211 il diavolo è nei dettagli e l'utilizzo di Standard Edition non è per i deboli di cuore-(per esempio, è possibile non è più clonare un database partizionato per un SE abilitato server a causa della licenza mancanti e funzionalità). Ancora se il cliente è appassionato di salvare quanto più possibile, allora questo potrebbe essere il bullet8230 argento finale fare corrono un grande magazzino Enterprise Data trovare cautela se hanno problemi con esso e vedere se è possibile posizionare Greenplum 8211 risparmio di un altro sacchetto di il denaro e accelerando le loro domande di BI. Ma attenzione, in un negozio di Oracle-religioso che potrebbe ritorcersi contro di you8230 Reality Check ho avuto questa discussione già con alcuni clienti aziendali. And found that although the story is easy in theory, the reality is different. If a customer already has the 160 CPU licenses purchased from Oracle, then the Oracle rep will not happily give a money-back in return of the shelfware licenses. So in that case the customer can only save on maintenance and support. But having enough licenses on the shelf, he would not have to purchase any more for the next 5 to 10 years. So talk cost avoidance instead of immediate savings. And again, if they are licensed by user or have a site license, then saving on licenses will be a tough discussion. Still, the savings on powercoolinghardwarefloorspace would still be significant enough to proceed anyway. And don8217t forget the other benefits of private cloud of which we all know how to position: they are no different for Oracle than for other business applications. Final thought For this to work you need a customer that is willing to work with you and be open on how they negociated with Oracle, and a team of DB engineers to work with you to make it happen. If internal politics cause significant roadblocks then you will get nowhere. It8217s not an easy sell but the rewards can be massive. We8217re only just starting to figure out how to convince customers and drive this approach. Feedback welcome and let me know if you need support. The online Everything Oracle at EMC community has lots of information on this subject. See in particular this presentation which I co-presented (with Sam Lucido) at this year8217s VMworld. Download 8220US Oracle Technology Commercial Price List8221 for the database license document. Read the fine print because it8217s not always as simple as it seems. Oracle disk configuration Oracle Database Tips by Burleson Consulting Improper Oracle Disk Setup Under the heading of improper disk setup there are many sub topics. Some of these disk setup topics include: Interface issues Mount options Filesystem choices Disk size and speed choices Lets look at each of these in the Oracle environment. Generally interface issues resolve to bandwidth issues. A case in point, a major bakery had upgraded their system, putting in more, faster CPUs, higher speed disks and newer hardware overall. They calculated on the average they only used 75 of the bandwidth on the old system so they reduced the number of HBAs from 12 dual-channel to 8 dual-channel. After the upgrade performance looked great, until the end of month processing crunch, suddenly performance dropped to half of what it was before. Investigation showed that while on the average they only needed 75 of the bandwidth of the 12 HBAs during end of month, end of quarter and end of year processing they actually required more. Luckily for them the HBAs in the old system where compatible and, they had the needed expansion slots to add the needed HBAs to the new system. With the 4 additional HBAs in place they quadrupled their performance. The other major choice in interfaces is in interface type, SCSI, Fibre, Fabric. Unfortunately there is no simple answer, you need to examine your system and if IO timing is bad, find out whether it is related to contention or bandwidth issues. Note that when you monitor IO timing you need to look at it from Oracles perspective, that is, from the time Oracle requests the IO to the time the IO is received by the Oracle system, not strictly at the operating system level. If you see a large difference between what Oracle is saying IO timings are and what the OS is saying you need to track down where the time is being consumed between the disk packs and the Oracle database. Essentially Oracle doesnt like any mount option involving logging on its datafile mount points. Anything you can do to make the disk look RAW to Oracle is a good thing. This means nologging, noatime, async, aio and many other mount options need to be considered depending on your operating system. Dramatic improvements in performance have been reported from just changing the mount options on the drives otr filesystems that support your Oracle datafiles. Generally it is not advised to switch to nologging type options on filesystems where non-Oracle or binary type files (executables) are stored. In UNIX you can control whether a file system uses buffered or unbuffered IO. With Oracle the use of a buffered filesystem is redundant and dangerous. An example of the dangers of a buffered filesystem with Oracle is when power is lost. The buffer in a buffered filesystem depends on the cache battery to provide enough power to allow the buffer to be written to disk before the disk spins down. However, many shops fail to monitor the cache battery lifetime limitations or fail to change the batteries at all. This can result in loss of data in a buffered filesystem on loss of power. You can turn off buffered writes in several ways (buffered reads arent an issue, but you should always use write-through caching). One is to mount the filesystems used with Oracle files as non-buffered using such options as: AIX: dio, rbrw, nointegrity SUN: delaylog, mincachedirect, convosyncdirect, nodatainlog LINUX: async, noatime HP: Use VxFS with: delaylog, nodatainlog, mincachedirect, convosyncdirect Using Direct IO at the Oracle Level For information about Oracle direct IO, refer to this URL by Steve Adams: Checking Your Server Methods for configuring the OS will vary depending on the operating system and file system in use. Here are some examples of quick checks that anyone can perform to ensure that you are using direct IO: Solaris - Look for a quotforcedirectioquot option. Oracle DBAs find this option often makes a huge difference in IO speed for Sun servers. Here is the Sun documentation: docs. sundbdoc816-02116m6nc6713aview AIX - Look for a quotdioquot option. Here is a great link for AIX direct IO: Veritas VxFS - (including HP-UX, Solaris and AIX), look for quotconvosyncdirectquot. It is also possible to enable direct IO on a per-file basis using Veritas QIO refer to the quotqiostatquot command and corresponding man page for hints. For HPUX, see Oracle on HP-UX - Best Practices. Linux - Linux systems support direct IO on a per-filehandle basis (which is much more flexible), and I believe Oracle enables this feature automatically. Someone should verify at what release Oracle started to support this feature (it is called ODIRECT). See Kernel Asynchronous IO (AIO) Support for Linux and this great OTN article: Talking Linux: OCFS Update. Im Using LINUX and ATA Arrays, no Stress, but IO is slow Dont panic Most LINUX kernels will take the default ATA interface setpoints that were the standard when the kernel was built (or even older ones). This can be corrected. In LINUX there is the hdparm command which allows you to reset how ATA drives are accessed by the operating system. Using hdparm is simple and with it I have seen 300 improvement in access speeds of various ATA drives. Lets go through a quick tuning sequence. First, we will use the hdparm command with no arguments but the full path to the disk device listing: rootaultlinux2 root hdparm devhdb devhdb: multcount 16 (on) IOsupport 0 (default 16-bit) unmaskirq 0 (off) usingdma 0 (off) keepsettings 0 (off) readonly 0 (off) readahead 8 (on) geometry 775571663, sectors 78177792, start 0 The hdparm with no arguments but the disk device gives the current settings for the disk drive. You should compare this to the specifications for your drive. You may find that direct emmory access (DMA) is not being used, readahead is too small, you are only using 16 bit when you should be using 32 bit, etc. Next, lets do a basic benchmark of the current performance of the drive, you do this using the hdparm Tt option (for all options do a man hdparm at the command line. rootaultlinux2 root hdparm - Tt devhdb Timing buffer-cache reads: 128 MB in 1.63 seconds 78.53 MBsec Timing buffered disk reads: 64 MB in 14.20 seconds 4.51 MBsec Now lets adjust the settings, the c option, when set to 1 enables 32 bit IO, the u option is used to get or set the interrupt-unmask flag for the drive. A setting of 1 permits the driver to unmask other interrupts during processing of a disk interrupt, which greatly improves Linuxs responsiveness and eliminates quotserial port overrunquot errors. Use this feature with caution on older kernels: some drivecontroller combinations do not tolerate the increased IO latencies possible when this feature is enabled, resulting in massive filesystem corruption. However most versions of Linux (RedHat 2.1 and greater) using modern controllers dont have this issue. The p option is used to autoset the PIO mode and d is used to set or unset the DMA mode. rootaultlinux2 root hdparm - c1 - u0 - p - d0 devhdb devhdb: attempting to set PIO mode to 0 setting 32-bit IOsupport flag to 1 setting unmaskirq to 0 (off) setting usingdma to 0 (off) IOsupport 1 (32-bit) unmaskirq 0 (off) usingdma 0 (off) So we turned on 32 bit mode and set DMA to mode 0. Lets see the resulting performance change using our previous Tt option. rootaultlinux2 root hdparm - Tt devhdb Timing buffer-cache reads: 128 MB in 1.63 seconds 78.53 MBsec Timing buffered disk reads: 64 MB in 9.80 seconds 6.53 MBsec So we didnt change the buffer-cache read timings, however, we improved the buffered disk reads by 45. Lets tweak some more and see if we can do better. The m option sets the multi-sector IO count on the drive. The c option sets the 32 bit option, the X sets the access mode to mdma2 the d1 option turns on direct memory access, the a8 option improves the readahead performance for large reads and u1 turns on the unmasking operation described above. rootaultlinux2 root hdparm - m16 - c3 - X mdma2 - d1 - a8 - u1 devhdb devhdb: setting fs readahead to 8 setting 32-bit IOsupport flag to 3 setting multcount to 16 setting unmaskirq to 1 (on) setting usingdma to 1 (on) setting xfermode to 34 (multiword DMA mode2) multcount 16 (on) IOsupport 3 (32-bit wsync) unmaskirq 1 (on) usingdma 1 (on) readahead 8 (on) So now lets see what we have done to performance using the Tt option. rootaultlinux2 root hdparm - Tt devhdb devhdb: Timing buffer-cache reads: 128 MB in 1.56 seconds 82.05 MBsec Timing buffered disk reads: 64 MB in 4.29 seconds 14.92 MBsec Not bad We improved buffered cache reads by 5 and buffered disk reads by 231 These options can then be loaded into a startup file to make them part of the system startup. Im Really Feeling SCSI About Disk Performance, what then Sorry for the bad pun (well, actually Im not) what can be done with SCSI interfaces To tell you the truth, not a lot, however, there are some items which you may find useful. Most interfaces will buffer commands and issue them in batches, for example, most SCSI interfaces use a 32 command buffer that stacks commands until it has 32 of them and then fires them off. This can be reset in LINUX using options in the modules. conf file for the SCSI interface module. In other UNIX flavors there are many settings which can be changed, but an exact understanding of the interface and its limitations as well as current system loads must be had before changing any of the SCSI settings. If you feel you need to have them checked, ask your SA. Disk Stress In a Nut Shell In summary, to determine if a disk or array is undergoing IO related stress, perform an IO balance and an IO timing analysis. If the IO timing analysis shows excessive read or write times investigate the causes. Generally speaking, poor IO timings will result when: A single disk exceeds 110 - 150 IO per second An entire multi-read capable RAID10 array exceeds MIRRORSDPM110 IOs per second An entire non-multi-read capable RAID10 array exceeds DPM110 IOs per second If a RAID5 array exceeds (DISKS-1)66 IOs per second then it will probably experience poor IO timings. Make sure Oracle is using direct IO at both the OS and Oracle levels Make sure your disk interface is tuned to perform optimally DPMDisks per mirror Seeing stress from the Oracle Side Disk stress will show up on the Oracle side as excessive read or write times. Filesystem stress is shown by calculating the IO timings as shown in Figure 16. For complete scripts, see my complete Oracle script collection at dba-oracleoraclescripts. htm . rem Purpose: Calculate IO timing values for datafiles col name format a65 col READTIMPHYRDS heading AvgRead Time format 9,999.999 col WRITETIMPHYWRTS heading AvgWrite Time format 9,999.999 set lines 132 pages 45 start title132 IO Timing Analysis spool repoutampdbiotime select f. FILE, d.name, PHYRDS, PHYWRTS, READTIMPHYRDS, WRITETIMPHYWRTS from vfilestat f, vdatafile d where f. filed. file and phyrdsgt0 and phywrtsgt0 union select a. FILE, b.name, PHYRDS, PHYWRTS, READTIMPHYRDS, WRITETIMPHYWRTS from vtempstat a, vtempfile b where a. fileb. file and phyrdsgt0 and phywrtsgt0 order by 5 desc spool off ttitle off clear col Figure 16: IO Timing Report An example of the output from Figure 16 is shown in Figure 17. Date: 112005 Page: 1 Time: 11:12 AM IO Timing Analysis PERFSTAT whoraw database FILE NAME PHYRDS PHYWRTS READTIMPHYRDS WRITETIMPHYWRTS ----- -------------- ---------- ------- -------------- ---------------- 13 devrawraw19 77751 102092 76.8958599 153.461829 33 devrawraw35 32948 52764 65.7045041 89.5749375 7 devrawraw90 245854 556242 57.0748615 76.1539869 54 devrawraw84 208916 207539 54.5494409 115.610912 40 devrawraw38 4743 27065 38.4469745 47.1722889 15 devrawraw41 3850 7216 35.6272727 66.1534091 12 devrawraw4 323691 481471 32.5510193 100.201424 16 devrawraw50 10917 46483 31.9372538 74.5476626 18 devrawraw24 3684 4909 30.8045603 71.7942554 23 devrawraw58 63517 78160 29.8442779 84.4477866 5 devrawraw91 102783 94639 29.1871516 87.8867909 Figure 17: Example IO Timing Report As you can see from Figure 17 we are looking at an example report from a RAW configuration using single disks. Notice how both read and write times exceed even the rather large good practice limits of 10-20 milliseconds for a disk read. However in my experience for reads you should not exceed 5 milliseconds and usually with modern buffered reads, 1-2 milliseconds. Oracle is more tolerant for write delays since it uses a delayed write mechanism, so 10-20 milliseconds on writes will normally not cause significant Oracle waits, however, the smaller you can get read and write times, the better In UNIX or LINUX you have multiple filesystem options, RAW, JFS, ext2, ext3, reiserFS, OCFS. You need to use the best performing filesystem usually RAW, ext3 or resierFS. Oracle OCFS is also viable. RAW is probably the simplest filesystem to understand. In Unix systems, a disk can be configured to contain a single contiguous chunk of space, or it can be configured to contain multiple separate chunks of space. Each chunk of space is called a partition or section. Typically a partition would be formatted to contain a filesystem, allowing a hierchical structure of directories and files to be created. A partition that does not contain a filesystem is called a raw partition . A database extent stored on a raw partition is called a raw extent. The primary advantage to using raw extents is the possibility of increased performance compared to extents stored in Unix files. The performance benefits occur because: File system overhead and address translation is eliminated. Database block addresses map directly to raw partition addresses. Read operations transfer data directly from the disk controller to shared memory and write operations transfer directly from shared memory to the disk controller. The Unix buffer pool is not used, avoiding the necessity to copy data from a Unix page buffer to shared memory and vice versa. Although they may provide increased performance, raw extents have several major disadvantages. You should not take the decision to use them lightly. Among the disadvantages are: Raw disk partitions are cumbersome to configure and manage. You have to keep track of what is on each raw partition yourself. You can easily make mistakes and destroy the contents of a raw partition. The number of raw partitions available on a disk may be quite limited. For example, on Solaris 2.5, a disk can have at most 8 partitions. Moving raw partitions from one disk to another may be difficult or impossible. Raw partition sizes are fixed. Allocating more space to a partition requires backing up all the partitions on a disk, designing a new partition layout, and restoring all saved data. You cannot use the same operating system backup utilities to make backups of files and raw partitions. You may get worse performance with raw devices than you do with files. The performance difference is highly dependent on the operating systems implementation of the file system. Many modern Unix systems, like Ditical Unix, AIX 4.2, HP-UX 10, Solaris 2.6, and others have highly advanced filesystem implementations that include many performance optimizations. Older Unix systems, such as Unix System V Release 4 are somewhat less advanced and raw partitions may provide better performance on these systems. You may not be able to use logical volume managers with raw partitions. Not all Unix systems support logical volumes composed of raw partitions. The EXT2 Filesystem The, Ext2fs is based on the Extfs code with many reorganizations and many improvements. It has been designed with evolution in mind and contains space for future improvements. The Second Extended File System has been designed and implemented to fix some problems present in the first Extended File System. The Ext2fs supports standard Unix file types: regular files, directories, device special files and symbolic links. Ext2fs is able to manage filesystems created on really big partitions. While the original kernel code restricted the maximal filesystem size to 2 GB, recent work in the VFS layer have raised this limit to 4 TB. Thus, it is now possible to use big disks without the need of creating many partitions. Ext2fs provides long file names. It uses variable length directory entries. The maximal file name size is 255 characters. This limit could be extended to 1012 if needed. Ext2fs reserves some blocks for the super user ( root ). Normally, 5 of the blocks are reserved. This allows the administrator to recover easily from situations where user processes fill up filesystems. Advanced Ext2fs features In addition to the standard Unix features, Ext2fs supports some extensions which are not usually present in Unix filesystems. File attributes allow the users to modify the kernel behavior when acting on a set of files. One can set attributes on a file or on a directory. In the later case, new files created in the directory inherit these attributes. BSD or System V Release 4 semantics can be selected at mount time. BSD-like synchronous updates can be used in Ext2fs. Ext2fs allows the administrator to choose the logical block size when creating the filesystem. Block sizes can typically be 1024, 2048 and 4096 bytes. Using big block sizes can speed up IO since fewer IO requests, and thus fewer disk head seeks, need to be done to access a file. Ext2fs implements fast symbolic links. Ext2fs keeps track of the filesystem state. Always skipping filesystem checks may sometimes be dangerous, so Ext2fs provides two ways to force checks at regular intervals. A mount counter is maintained in the superblock. Each time the filesystem is mounted in readwrite mode, this counter is incremented. When it reaches a maximal value (also recorded in the superblock), the filesystem checker forces the check even if the filesystem is Clean. Mount options can also be used to change the kernel error behavior. An attribute allows the users to request secure deletion on files. When such a file is deleted, random data is written in the disk blocks previously allocated to the file. This prevents malicious people from gaining access to the previous content of the file by using a disk editor. Last, new types of files inspired from the 4.4 BSD filesystem have recently been added to Ext2fs. Immutable files can only be read: nobody can write or delete them. This can be used to protect sensitive configuration files. Append-only files can be opened in write mode but data is always appended at the end of the file. Like immutable files, they cannot be deleted or renamed. This is especially useful for log files which can only grow. According to Dr. Stephan Tweety: The ext3 filesystem is a journaling extension to the standard ext2 filesystem on Linux. Journaling results in massively reduced time spent recovering a filesystem after a crash, and is therefore in high demand in environments where high availability is important, not only to improve recovery times on single machines but also to allow a crashed machines filesystem to be recovered on another machine when we have a cluster of nodes with a shared disk the real objective in EXT3 was this simple thing: availability. When something goes down in EXT3, we dont want to have to go through a fsck. We want to be able to reboot the machine instantly and have everything nice and consistent. You can take an existing EXT2 filesystem, throw a journal file onto it, and mount it as EXT3. The ReiserFS 3.6.x (the version included as part of Linux 2.4) was designed and developed by Hans Reiser and his team of developers at Namesys. The ReiserFS uses a specially optimized b balanced tree (one per filesystem) to organize all of its filesystem data. This offers a nice performance boost, as well as easing artificial restrictions on filesystem layouts. Its now possible to have a directory that contains 100,000 other directories, for example. Another benefit of using a btree is that ReiserFS, like most other next-generation filesystems, dynamically allocates inodes as needed rather than creating a fixed set of inodes at filesystem creation time. This helps the filesystem to be more flexible to the various storage requirements that may be thrown at it, while at the same time allowing for some additional space-efficiency. ReiserFS also has a host of features aimed specifically at improving small file performance. Unlike ext2, ReiserFS doesnt allocate storage space in fixed one k or four k blocks. Instead, it can allocate the exact size it needs. And ReiserFS also includes some special optimizations centered around tails, a name for files and end portions of files that are smaller than a filesystem block. In order to increase performance, ReiserFS is able to store files inside the btree leaf nodes themselves, rather than storing the data somewhere else on the disk and pointing to it. This does two things. First, it dramatically increases small file performance. Since the file data and the statdata (inode) information are stored right next to each other, they can normally be read with a single disk IO operation. Second, ReiserFS is able to pack the tails together, saving a lot of space. In fact, a ReiserFS filesystem with tail packing enabled (the default) can store six percent more data than the equivalent ext2 filesystem, which is amazing in itself. However, tail packing does cause a slight performance hit since it forces ReiserFS to repack data as files are modified. For this reason, ReiserFS tail packing can be turned off, allowing the administrator to choose between good speed and space efficiency, or opt for even more speed at the cost of some storage capacity. Of course we also have many other filesystems such as those from Veritas, Polyserver and other specialized systems. Oracle and Filesystems Generally Oracle prefers filesystems that dont do logging or journaling for filesystems that contain datafiles so if you use EXT2, EXT3 or reiserFS you need to mount them with the journaling or logging off. If RAW filesystems are used you avoid some overhead but usually can only obtain a 2-5 percent performance increase over modern optimized filesystems. RAIDRedundant Arrays of Inexpensive Disks The main strengths of RAID technology are its dependability and IO bandwidth. For example, in a RAID5 array, the data is stored as are checksums and other information about the contents of each disk in the array. If one disk is lost, the others can use this stored information to re-create the lost data. However, this rebuild of data on-the-fly causes a massive hit on performance. In RAID 1, RAID 10 and RAID 01 failed disks are immediately replaced by their mirror with no performance hit. This makes RAID very attractive. RAID 5 has the same advantages as shadowing and striping at a lower cost. It has been suggested that if the manufacturers would use slightly more expensive disks (RASMEDredundant array of slightly more expensive disks) performance gains could be realized. A RAID system appears as one very large, reliable disk to the CPU. There are several levels of RAID to date: RAID 0 . Known as disk striping. RAID 1 . Known as disk shadowing or mirroring. RAID 10 . Combination of RAID0 and RAID1. May also be called RAID 10 depending on whether they are striped and mirrored or mirrored then striped. It is generally felt that RAID 10 performs better than RAID 01. RAID 2 . Data is distributed in extremely small increments across all disks and adds one or more disks that contain a Hamming code for redundancy. RAID 2 is not considered commercially viable due to the added disk requirements (10 to 20 percent must be added to allow for the Hamming disks). RAID 3 . This also distributes data in small increments but adds only one parity disk. This results in good performance for large transfers, but small transfers show poor performance. RAID 4 . In order to overcome the small transfer performance penalties in RAID3, RAID4 uses large data chunks distributed over several disks and a single parity disk. This results in a bottleneck at the parity disk. Due to this performance problem RAID 4 is not considered commercially viable. RAID 3 and 4 are usually are used for video streaming technology or large LOB storage. RAID 5 . This solves the bottleneck by distributing the parity data across the disk array. The major problem is it requires several write operations to update parity data. The performance hit is only moderate, and the other benefits may outweigh this minor problem. However the penalty for writes can be over 20 and must be weighed against the benefits. RAID 6 . This adds a second redundancy disk that contains error-correction codes. Read performance is good due to load balancing, but write performance suffers due to RAID 6 requiring more writes than RAID 5 for data update. For the money, I would suggest RAID01 or RAID10, that is, striped and mirrored. It provides nearly all of the dependability of RAID5 and gives much better write performance. You will usually take at least a 20 percent write performance hit using RAID5. For read-only applications RAID5 is a good choice, but in high-transactionhigh-performance environments the write penalties may be too high. Figure 18 shows RAID 1-0 or 0-1 depending on whether you stripe and then mirror or mirror first and then stripe. In most situations you get better performance from RAID 1-0 (mirroring then striping.) Figure 18: Mirroring and Striping Table 1 shows how Oracle suggests RAID should be used with Oracle database files. Table 1: RAID Recommendations (From MOSC NOTE: 45635.1) Disk Speed and Size Selection This all points to the fact that in order to get the maximum performance from your disk system you must understand the IO characteristics (the profile) of your database system, be it Oracle, SQL Server, Informix, UDB or MySQL. You must tune your disk architecture to support the expected IO profile and must tune the database system to take advantage of the disk architecture. For example, an Oracle database has different IO characteristics depending on whether it is reading or writing data and what type of read or write it is doing. Other databases have fixed readwrite sizes. You must determine the IO profile for your database and then use the IO profile of the database to determine the maximum and minimum IO size. The IO profile will tell you what percentage of IO is large IO and what percentage is small IO, it will also give you the expected IO rate in IOsecond. Once you have the IO per second you can determine the IO capacity (number of drives) needed to support your database. The first rule of tuning your disk system is: Size first for IO capacity, then for volume. Some back of the envelope calculations for the number of spindles needed to support IO rate are: RAID10 with active readwrite to all mirrors: IOR is expected maximum IO rate in IOsec NSIOR is the average non-sequential IO rate of the disks in IOsec (range of 90-100 for RAID10) M is the number of mirrors (The maximum of the IO rate divided by the average non-sequential IO rate per disk times the number of mirrors to the nearest power of M or 2M) RAID5 assuming 1 parity disk: IOR is expected maximum IO rate in IOsec CNSIOR is the corrected average non-sequential IO rate of the disks in IOsec (range of 60-90 for RAID5) (The maximum of the IO rate divided by the average non-sequential IO rate per disk corrected for RAID5 penalties plus 1 disk for the parity disk) The correction for the non-sequential IO rate for RAID is due to the up to 400 penalty on writes (writes take 4 times linger than reads on the same drive). In some cases on RAID5 I have seen this go as high as 6400 (writes take 64 times as long as reads for the same file) when combined with other problems such as fragmentation. A case in point, early RAID architectures utilized the quotstripe shallow and widequot mind set where files where broken into small pieces and spread over a large number of disks. For example, stripe unites per disk of as small as 8K were common. Many systems read in IO sizes of 64K or larger. This means that to satisfy a single IO request 8 disks of the RAID set were required, if there were fewer than 8 disks in the set. Disks would have to undergo 2 or more IOs to satisfy the request. This sounds fine if you are talking about a single user wanting to read a large file from a large group of disks very quickly, however, what happens when you have 10 or 100 or 1000 concurrent users all wanting to do the same thing Tune for Concurrency This problem with concurrent access and RAID arrays is one of the most prevailing in the industry. The ubiquitous IO wait is usually the predominant wait event in any database system simply due to the fact that IO to memory is in the nanosecond range while IO to disk is in the millisecond range, when you add in blocked access due to multi-disk IO requests you get a snowball effect that can cripple your IO subsystem. Array manufacturers have begun to recognize this concurrent access problem and have increased the base stripe unit per disk to 64K, matching the IO unit for many systems. Of course now systems such as SUN and Windows utilize maximum IO sizes of 1 megabyte or larger, so again the array manufacturers are playing catch up to the server manufacturers. So what is our second rule of tuning disks Based on the above information the rule is: Always ensure that the primary IO size for your database system is matched to the IO size of the disk array system. Of course the inverse also holds true: Always match the stripe unit per disk to the expected majority IO request from your (database) application. In the 1990s Paul Chen of the University Of Berkeley computer center published a series of papers on tuning disk array stripe units size based on expected concurrency. In these papers by Mr. Chen and his associates they determined that the IO speed (as measured by average seek time) and IO rate (as measured in megabytes per second) for a disk determined the stripe size for performance in an array even when the number of concurrent accesses is not known. There were three formulae derived from these papers: For non-RAID5 arrays when concurrency is known: SU - Striping unit per disk S - Concurrency slope coefficient ( APT - Average positioning time (milliseconds) DTR - Data transfer rate (Megabytesec) CON - number of concurrent users. 1.024 1s1000ms1024K1M (conversion factors for units) So for a drive that has an average seek time of 5.6 ms and a transfer rate of 20 Mbytesecond the calculated stripe unit for a 20 concurrent user base would be: For a system where you didnt know the concurrency the calculation becomes: So for the same drive: 235.6201.024 76.46K so rounding up 128K or rounding down 64K And from Chens final paper, a formula for RAID5 arrays is: 0.55.6201.024 57.34 (rounding up 64K) The values for average access time and transfer rate used in these examples is actually fairly low when compared to more advanced drives so the stripe sizes shown above are probably low by at least a factor of 2 or more. I say this because while average seek times drop, the transfer rate increases for example on a Ultra3 SCSI 15K drive the spec for average seek may drop to 4.7 ms, however the transfer rate leaps to 70 Mbyte per second. So the over all value of the combined factor goes from 112 to 329, a 293 increase. Many system administrators are guilty of perpetuating the 100 myth. This myth states that you dont need more assets (be it disk, CPU, or Memory) until the existing asset is 100 utilized. This leads to performance issues in the area of disks. Due to disk physics the best performance for a disk is at the outer edges, once you get towards the inner sectors performance decreases because of the distance the head must travel to read the data and other factors. In the good old days administrators spent much time positioning frequently used files on the outer edges of disks. While physically positioning files on disks is difficult if not impossible in modern RAID systems, you should endeavor not to fill the disks to 100 of capacity. Some experts say dont use more then 30 if you want maximum performance, others 50. I say it depends on how the system is used, the operating system and the RAID array system. For example the Clariion from EMC promises to tune the placement of files such that frequently used files are in the best locations. So, what can we summarize about disk size and speed Get the fastest drives you can and plan capacity based on concurrency requirements as well as IO requirements. The more, faster disks the better. Improper Initialization File Parameter Settings For Oracle7, version 7.3, there are 154 initialization parameters, for Oracle8, version 8.0.5, there are 184. In Oracle8 i there are 194. In Oracle9i version 9.0.1 there are 251 and in 9iR2, 257. In 10g the number of parameters actually dropped to 254 but the number of undocumented parameters increased. In 9iR2 the number of undocumented parameters was 583 up to 918 in 10gR1. Fortunately there are very few that you need to adjust to tune Oracle. Table 2 lists the major tuning parameters, but is not supposed to be a complete list by any means. Table 2: Tuning Parameters How to determine proper setpoints for all of these is beyond the scope of this paper. However the Oracle tuning guides provide many good tips as does the Burleson Consulting web site: remote-dba . Improper PGA setup I dont believe there is anyone out there that believes disk based sorts and hashes are good things. A disk based operation will take anywhere from 17 to hundreds of times as long as a memory based operation depending on buffering, IO bandwidth, memory and disk speeds. Oracle provides AWRRPT or statspack reports to track and show the number of sorts. Unfortunately hashes are not so easily tracked. Oracle tracks disk and memory sorts, number of sort rows and other sort related statistics. Hashes on the other hand only can be tracked usually by the execution plans for cumulative values, and by various views for live values. In versions prior to 9i the individual areas were set using the sortareasize and hashareasize parameters, after 9i the parameter PGAAGGREGATETARGET was provided to allow automated setting of the sort and hash areas. For currently active sorts or hashes the script in Figure 19 can be used to watch the growth of temporary areas. For complete scripts, see my complete Oracle script collection at dba-oracleoraclescripts. htm . column now format a14 column operation format a15 column dt newvalue td noprint set feedback off select tochar(sysdate, ddmonyyyyhh24miss) dt from dual set lines 132 pages 55 title132 Sorts and Hashes spool repoutampampdbsortshashesampamptd select sid, workareasize, expectedsize, actualmemused, maxmemused, tempsegsize, tochar(sysdate, ddmonyyyyhh24miss) now, operationtype operation from vsqlworkareaactive spool off clear columns set lines 80 feedback on ttitle off Figure 19: Live Sorts and Hashes Report Figure 20 shows an example output from this report. Date: 010406 Page: 1 Time: 01:27 PM Sorts and Hashes SYS whoville database Work Area Expected Actual Mem Max Mem Tempseg SID Size Size Used Used Size Now Operation ---- --------- -------- ---------- ------- ------- --------------- --------------- 1176 6402048 6862848 0 0 04jan2006132711 GROUP BY (HASH) 582 114688 114688 114688 114688 04jan2006132711 GROUP BY (SORT) 568 5484544 5909504 333824 333824 04jan2006132711 GROUP BY (HASH) 1306 3469312 3581952 1223680 1223680 04jan2006132711 GROUP BY (HASH) Figure 20: Example Sorts and hashes Report As you can see the whoville database had no hashes, at the time the report was run, going to disk. We can also look at the cumulative statistics in the vsysstat view for cumulative sort data. Date: 120905 Page: 1 Time: 03:36 PM Sorts Report PERFSTAT sd3p database Type Sort Number Sorts -------------------- -------------- sorts (memory) 17,213,802 sorts (disk) 230 sorts (rows) 3,268,041,228 Figure 21: Cumulative Sorts Another key indicator that hashes are occurring are if there is excessive IO to the temporary tablespace yet there are few or no disk sorts. The PGAAGGREGATETARGET is the target total amount of space for all PGA memory areas. However, only 5 or a maximum of 200 megabytes can be assigned to any single process. The limit for PGAAGGREGATETARGET is 4 gigabytes (supposedly) however you can increase the setting above this point. The 200 megabyte limit is set by the pgamaxsize undocumented parameter, this parameter can be reset but only under the guidance of Oracle support. But what size should PGAAGGREGATETARGET be set The AWRRPT report in 10g provides a sort histogram which can help in this decision. Figure 22 shows an example of this histogram. PGA Aggr Target Histogram DBInst: OLSols Snaps: 73-74 - gt Optimal Executions are purely in-memory operations Low High Optimal Optimal Total Execs Optimal Execs 1-Pass Execs M-Pass Execs ------- ------- -------------- -------------- ------------ ------------ 2K 4K 1,283,085 1,283,085 0 0 64K 128K 2,847 2,847 0 0 128K 256K 1,611 1,611 0 0 256K 512K 1,668 1,668 0 0 512K 1024K 91,166 91,166 0 0 1M 2M 690 690 0 0 2M 4M 174 164 10 0 4M 8M 18 12 6 0 ------------------------------------------------------------- Figure 22: Sort Histogram In this case we are seeing 1-pass executions indicating disk sorts are occurring with the maximum size being in the 4m to 8m range. For an 8m sort area the PGAAGGREGATETARGET should be set at 320 megabytes (sorts get 0.5(.05PGAAGGREGATETARGET) ). For this system the setting was at 160 so 4 megabytes was the maximum sort size, as you can see we were seeing 1-pass sorts in the 2-4m range as well even at 160m. By monitoring the realtime or live hashes and sorts and looking at the sort histograms from the AWRRPT reports you can get a very good idea of the needed PGAAGGREGATETARGET setting. If you need larger than 200 megabyte sort areas you may need to get approval from Oracle support through the i-tar process to set the pgamaxsize parameter to greater than 200 megabytes. This paper has presented the major tuning issues I have seen at many sites during tuning engagement. I have presented ways of determining if the issues exist and how to determine settings to help mitigate the issues in an active database. Burleson is the American Team Note: This Oracle documentation was created as a support and Oracle training reference for use by our DBA performance tuning consulting professionals. Feel free to ask questions on our Oracle forum . Verify experience Anyone considering using the services of an Oracle support expert should independently investigate their credentials and experience, and not rely on advertisements and self-proclaimed expertise. All legitimate Oracle experts publish their Oracle qualifications . Errata Oracle technology is changing and we strive to update our BC Oracle support information. If you find an error or have a suggestion for improving our content, we would appreciate your feedback. Just e-mail: and include the URL for the page. The Oracle of Database Support Copyright copy 1996 - 2016 All rights reserved by Burleson Oracle reg is the registered trademark of Oracle Corporation.

No comments:

Post a Comment