Volume condiviso per i dati (MDF multiplo) e un altro volume condiviso per i registri (più LDF) su san

StackOverflow https://stackoverflow.com//questions/12649589

Domanda

Ho 3 istanze di SQL Server 2008, ciascuna su macchine diverse con più database su ciascuna istanza.Ho 2 LUN separati sui miei file SAN per MDF e LDF.I file NDX e TEMPDB vengono eseguiti sull'unità locale su ciascuna macchina.Va bene.Per i 3 istanze per condividere uno stesso volume per i file di dati e un altro volume per i file di registro?

Non ho il provisioning sottile sul san, quindi vorrei non lo spazio del disco in lastaint creando più volumi perché sono stato consigliato che dovrei creare un volume (lettera di unità) per ogni istanza, se non per ogni database.Sono consapevole del fatto che dovrei dividere almeno i miei registri e file di dati.Nessuna istanza condividerebbe i file del database effettivi, solo lo spazio sull'unità.

Qualsiasi aiuto è apprezzato.

È stato utile?

Soluzione

Ovviamente la risposta è: "Dipende". Posso provare a darti alcuni suggerimenti su ciò che dipende Comunque.

Un'istanza di SQL Server "presume" che abbia accesso esclusivo alle sue risorse. Quindi riempirà tutta la RAM disponibile per impostazione predefinita, utilizzerà tutte le CPU e cercherà di saturare i canali I / O per ottenere le massime prestazioni. Questo è il motivo per il consiglio generale di mantenere i tuoi esempi di accedere contemporaneamente agli stessi dischi.

Un'altra cosa è che SQL Server "sa" che l'accesso I / O sequenziale ti offre trhoughput molto più alto rispetto a I / O casuali, quindi ci sono molti meccanismi al lavoro (come l'organizzazione del logfile, i lettori di lettura, scrittore di lettura altri) per evitare il più possibile I / O casuale.

Ora, se tre istanze di SQL Server eseguono richieste I / O sequenziali su un singolo volume contemporaneamente, quindi dal punto di vista del volume riceve di nuovo le richieste di I / O casuali, il che fa più male le prestazioni. .

Detto questo, è solo un problema se il sottosistema I / O è un collo di bottiglia significativo. Se il volume di logfile è abbastanza velocemente che le scritture sequenziali mescolate dalle istanze non creano un problema, quindi vai avanti. Se hai abbastanza RAM sulle istanze che letture dei dati possono essere soddisfatte dalla cache del buffer la maggior parte del tempo, non hai bisogno di molte prestazioni di lettura sul sottosistema I / O.

Ciò che dovresti evitare in ogni caso è più passaggi di crescita sui file di registro o di dati. Se sono in crescita diversi file su un filesystem, otterrai la frammentazione e la frammentazione possono trasformare una richiesta di lettura o scrittura sequenziale anche da una singola fonte a I / O casuale di nuovo.

L'intera immagine cambia nuovamente se si utilizza SSDS come dischi. Questi hanno requisiti e comportamenti totalmente diversi, ma dal momento che non hai detto nulla su SSD, presumerò di utilizzare un array di disco o una configurazione RAID "convenzionale".

Summary breve: potresti farla franca, se le circostanze sono giuste, ma è difficile valutare senza saperne molto di più sui tuoi sistemi, sia dal punto di vista SAN e SQL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top