Pianificazione e ottimizzazione della capacità del database per Microsoft HPC Pack
Le funzionalità di gestione dei cluster HPC di Windows in Microsoft HPC Pack si basano su diversi database di Microsoft SQL Server per supportare la gestione, la pianificazione dei processi, la diagnostica, la creazione di report e la funzionalità di monitoraggio. Quando si installa HPC Pack in un server per creare un nodo head, l'installazione predefinita installa l'edizione Express di Microsoft SQL Server (se non viene rilevata un'altra edizione di SQL Server) e crea i database necessari nel nodo head. L'edizione Express non prevede costi di licenza aggiuntivi ed è inclusa per offrire un'esperienza predefinita per i cluster di verifica o sviluppo e per i cluster di produzione di piccole dimensioni. A seconda delle dimensioni, della velocità effettiva e dei requisiti del cluster, è possibile installare un'edizione diversa di SQL Server nel nodo head o installare i database nei server remoti. Le informazioni contenute in questo documento consentono di determinare la configurazione del database e le opzioni di ottimizzazione aggiuntive appropriate per il cluster.
In questo argomento:
versioni applicabili di Microsoft HPC Pack e Microsoft SQL Server
Le opzioni di base per la configurazione del database in Microsoft HPC Pack
procedure consigliate per la configurazione e l'ottimizzazione
Versioni applicabili di Microsoft HPC Pack e Microsoft SQL Server
Le indicazioni contenute in questo argomento si applicano alle versioni di HPC Pack e SQL Server elencate nella tabella seguente.
Versione di Microsoft HPC Pack | Database del cluster | Versioni supportate di Microsoft SQL Server | Note |
HPC Pack 2016 | - HPCManagement - HPCScheduler - HPCReporting - HPCDiagnostics - HPCMonitoring |
- SQL Server 2014 e versioni successive - Database SQL di Azure |
- La versione di SQL Server Express limita ogni database a 10 GB. |
HPC Pack 2012 R2 e HPC Pack 2012 | - HPCManagement - HPCScheduler - HPCReporting - HPCDiagnostics - HPCMonitoring |
- SQL Server 2008 R2 e versioni successive - Database SQL di Azure |
- La versione di SQL Server Express limita ogni database a 10 GB. - Il database SQL di Azure è supportato solo per HPC Pack 2012 R2 Update 3 build 4.5.5194 o versione successiva |
Opzioni di base per la configurazione del database in Microsoft HPC Pack
Questa sezione fornisce informazioni generali su tre opzioni di base per la configurazione del database con HPC Pack. Per indicazioni sulla scelta di un'opzione appropriata per la distribuzione, vedere Scelta dell'edizione corretta di SQL Server per il cluster in questo argomento.
SQL Server Express nel nodo head
Questa è l'esperienza predefinita. Viene in genere usato per cluster di prova o di sviluppo o per cluster di produzione di piccole dimensioni. Come illustrato nella tabella nella sezione precedente, se supportato dalla versione di HPC Pack, SQL Server 2016 Express, SQL Server 2014 Express o SQL Server 2012 Express consente dimensioni del database fino a 10 GB. I passaggi di base per questa configurazione sono i seguenti:
Installare HPC Pack in un server per creare un nodo head.
Facoltativamente, specificare i percorsi dei file di database e di log nell'installazione guidata (o accettare le impostazioni predefinite).
SQL Server Express viene installato automaticamente e i database HPC vengono creati automaticamente.
Distribuire nodi.
SQL Server Standard nel nodo head
Si tratta di una configurazione di base per i cluster di medie dimensioni. SQL Server Standard Edition (o un'altra edizione completa, non Compact) consente database di dimensioni maggiori e capacità di gestione aggiuntive per supportare più nodi e una maggiore velocità effettiva dei processi. I passaggi di base per questa configurazione sono i seguenti:
Installare una versione di SQL Server Standard Edition supportata dalla versione di HPC Pack nel server che fungerà da nodo head.
Installare HPC Pack nel server per creare un nodo head.
Facoltativamente, specificare i percorsi dei file di database e di log nell'installazione guidata (o accettare le impostazioni predefinite).
I database HPC vengono creati automaticamente.
Facoltativamente, ottimizzare i database in base alle esigenze tramite SQL Server Management Studio.
Distribuire nodi.
database remoti (SQL Server Standard o SQL Server Express)
L'installazione di uno o più database HPC in un server remoto è una configurazione consigliata per cluster di dimensioni maggiori o per i cluster configurati per la disponibilità elevata del nodo head. Per altre informazioni, vedere Deploying an HPC Pack Cluster with Remote Databases Step-by-Step Guide (Guida dettagliata alla distribuzione di un cluster HPC Pack con database remoti). Per i nodi head a disponibilità elevata, in genere si usa l'edizione Standard di SQL Server per supportare la disponibilità elevata dei database, che è diversa dalla disponibilità elevata dei servizi di gestione HPC. Per altre informazioni, vedere la guida introduttiva per HPC Pack 2016. I passaggi di base per questa configurazione sono i seguenti:
Installare una versione di SQL Server Standard Edition supportata dalla versione di HPC Pack in un server remoto.
Creare manualmente i database HPC remoti e ottimizzare in base alle esigenze usando SQL Server Management Studio.
Eseguire altri passaggi di configurazione nel server remoto che esegue SQL Server in base alle esigenze della versione di HPC Pack.
Installare HPC Pack in un server per creare un nodo head.
Nell'installazione guidata specificare le informazioni di connessione per i database remoti.
Distribuire nodi.
Scelta dell'edizione corretta di SQL Server per il cluster
Le linee guida generali seguenti consentono di determinare quale edizione di SQL Server usare per il cluster. I numeri di velocità effettiva del nodo e del processo sono concepiti solo come linee guida generali, in quanto le prestazioni variano in base all'hardware e alla topologia selezionata per il cluster e al carico di lavoro supportato dal cluster.
È consigliabile usare l'edizione Standard (o un'altra edizione completa, non Compact) di SQL Server se si applica una delle condizioni seguenti:
Il cluster ha molti nodi. Le informazioni quali le proprietà dei nodi, le configurazioni, le metriche e la cronologia delle prestazioni vengono archiviate nei database. I cluster di dimensioni maggiori richiedono più spazio nei database. Come linea guida generale, l'edizione Express è sufficiente per un massimo di 64 nodi con SQL Server Express 2012 o fino a 128 nodi con una versione successiva di SQL Server Express.
Il cluster supporta una velocità effettiva del processo molto elevata, ad esempio maggiore di 10.000 attività o sottoattività al giorno. Ogni processo, attività e sottoattività contiene voci nel database per archiviare le proprietà e le informazioni di allocazione e la cronologia. Il periodo di conservazione predefinito per questi dati è di 5 giorni. È possibile modificare il periodo di conservazione per ridurre i requisiti di capacità. Vedere impostazioni di conservazione dei dati HPC in questo argomento.
Il cluster è configurato per la disponibilità elevata del nodo head e si vuole configurare anche la disponibilità elevata per SQL Server.
È necessario archiviare i dati di processi e attività nel database HPCScheduler per un lungo periodo di tempo e superare il limite di database imposto dalla versione di SQL Server Express.
È possibile usare il database HPCReporting in modo pesante e possibilmente usare le funzionalità di estendibilità dei dati per la creazione di report personalizzati. Per informazioni sulla disabilitazione dell'estendibilità dei report e sulla riduzione dei requisiti di dimensioni per il database di report, vedere impostazioni di conservazione dei dati HPC in questo argomento.
È necessaria l'affidabilità, le prestazioni e la flessibilità aggiuntive offerte dagli strumenti di SQL Server Management Studio (incluso il supporto per i piani di manutenzione). Ad esempio, SQL Server Standard Edition offre le funzionalità seguenti,tra le altre, che possono essere utili per gli amministratori del cluster HPC:
Dimensioni illimitate del database
Supporto per configurazioni a disponibilità elevata
Utilizzo illimitato della RAM per la memorizzazione nella cache del database
Nota
SQL Server Management Studio non è incluso automaticamente nell'edizione Express di SQL Server. È possibile scaricarlo separatamente se si desidera modificare le impostazioni per i database HPC.
Si pianifica una distribuzione di grandi dimensioni dei nodi di Windows Azure, ad esempio diverse centinaia di istanze del ruolo di Windows Azure o più. Per altre informazioni sulle distribuzioni di nodi di Windows Azure di grandi dimensioni, vedere Procedure consigliate per distribuzioni di grandi dimensioni di nodi di Windows Azure con Microsoft HPC Pack.
Procedure consigliate per la configurazione e l'ottimizzazione
Questa sezione include alcune linee guida e procedure consigliate per l'ottimizzazione delle prestazioni dei database HPC. Le impostazioni di configurazione di esempio per un cluster di scalabilità più grande sono descritte nell'elenco seguente. Queste impostazioni in alcuni casi differiscono notevolmente da quelle configurate per impostazione predefinita da HPC Pack. Altre informazioni su queste opzioni sono disponibili nelle sezioni seguenti.
In un server con tre piatti (dischi fisici) configurare:
Sistema operativo su un piatto dedicato.
I database del cluster in un piatto dedicato.
File di log del database del cluster in un piatto dedicato.
In SQL Server Management Studio configurare:
Database HPCManagement: dimensioni iniziali 20 GB, velocità di crescita di 100%
Log del database HPCManagement: dimensioni iniziali 2 GB
Database HPCScheduler: dimensioni iniziali 30 GB, frequenza di crescita 0%
Nota
In un cluster di grandi dimensioni, per evitare un arresto imprevisto dell'utilità di pianificazione dei processi HPC a causa del database HPCScheduler che raggiunge i limiti di dimensioni, è consigliabile non configurare le impostazioni di aumento automatico per questo database.
Log del database HPCScheduler: dimensioni iniziali 2 GB
Database HPCReporting: dimensioni iniziali 30 GB, velocità di crescita di 100%
Log del database HPCReporting: dimensioni iniziali 2 GB
Database e log HPCDiagnostics: usare le impostazioni predefinite
Database HPCMonitoring: 1 GB, frequenza di crescita 10%
Log del database HPCMonitoring: usare le impostazioni predefinite
Nota
Il database HPCMonitoring viene configurato a partire da HPC Pack 2012.
Per i database ospitati nel nodo head, in SQL Server Management Studio configurare la memoria per il database in modo che sia circa una metà della memoria fisica nel nodo. Ad esempio, per un nodo head con 16 GB di memoria fisica, configurare le dimensioni del database di 8-10 GB.
Per i database ospitati nel nodo head, in SQL Server Management Studio impostare il flag di parallelizzazione su 1 (0 è il valore predefinito).
Requisiti di spazio su disco e modello di ripristino di SQL Server
Per impostazione predefinita in SQL Server Standard Edition, il modello di recupero di SQL Server per ogni database è impostato su full. Questo modello può causare un aumento molto elevato dei file di log a causa della manutenzione manuale necessaria. Per recuperare spazio di log e mantenere i requisiti di spazio su disco ridotti, è possibile modificare il modello di recupero per ogni database in Simple. Il modello di recupero selezionato dipende dai requisiti di ripristino. Se si usa il modello completo, assicurarsi di pianificare spazio sufficiente per i file di log e tenere presenti i requisiti di manutenzione regolari. Per altre informazioni, vedere Panoramica del modello di recupero .
Nota
Se si sceglie il modello completo
Ridimensionamento iniziale e aumento automatico dei database e dei file di log
L'aumento automatico significa che quando un database o un file di log esaurisce lo spazio, aumenta automaticamente le dimensioni di una percentuale predefinita (come definito dal parametro aumento automatico). Durante il processo di aumento automatico, il database è bloccato. Ciò influisce sulle operazioni e sulle prestazioni del cluster e può causare deadlock e timeout dell'operazione. Il pre-dimensionamento dei database consente di evitare questi problemi di prestazioni e configurando una percentuale di aumento automatico maggiore, si riduce la frequenza delle operazioni di aumento automatico. Tuttavia, un file di grandi dimensioni iniziale associato a un'impostazione di aumento automatico che si avvicina a 100% può richiedere una quantità significativa di tempo per aumentare il database. È importante comprendere le prestazioni del sottosistema del disco per determinare i valori che non bloccano l'accesso al database per un periodo prolungato.
Ogni database ha un file di log associato. È anche possibile ottimizzare le dimensioni iniziali e le impostazioni di aumento automatico dei file di log.
Le configurazioni predefinite per i database e i file di log (indipendentemente dall'edizione di SQL Server) sono illustrate nella tabella seguente:
Database e log HPC | Dimensioni iniziali (MB) | Aumento automatico |
---|---|---|
HPCManagement | Database: 1024 Log: 128 |
Database: 50% Log: 50% |
HPCScheduler | Database: 256 Log: 64 |
Database: 10% Log: 10% |
HPCReporting | Database: 128 Log: 64 |
Database: 10% Log: 10% |
HPCDiagnostics | Database: 256 Log: 64 |
Database: 10% Log: 10% |
HPCMonitoring Nota: Il database HPCMonitoring è configurato a partire da HPC Pack 2012. | Database: 256 Log: 138 |
Database: 10% Log: 10% |
Ad esempio, nella tabella seguente sono elencate le dimensioni iniziali e le impostazioni di aumento automatico che potrebbero essere appropriate per un cluster con diverse centinaia o più nodi.
Nota
Le dimensioni iniziali di questa tabella sono espresse in gigabyte (GB), non in megabyte (MB) come nella tabella precedente.
Database e log HPC | Dimensioni iniziali (GB) | Aumento automatico |
---|---|---|
HPCManagement | Database: 20 Log: 2 |
Database: 100% Log: 10% |
HPCScheduler | Database: 30 Log: 2 |
Database: 0% Log: 10% |
HPCReporting | Database: 30 Log: 2 |
Database: 100% Log: 10% |
HPCDiagnostics | Database: impostazione predefinita Log: impostazione predefinita |
Database: impostazione predefinita Log: impostazione predefinita |
HPCMonitoring | Database: 1 Log: impostazione predefinita |
Database: impostazione predefinita Log: impostazione predefinita |
Lo snip della schermata seguente illustra i database HPC in SQL Server Management Studio e la finestra di dialogo delle proprietà del database che è possibile usare per configurare le dimensioni iniziali e le impostazioni di aumento automatico per i database.
Percorso del file di database e di log
È possibile migliorare le prestazioni creando i database in un piatto separato (disco fisico) rispetto ai file di log. Questo vale per i database presenti nel nodo head e per i database remoti. Per i database nel nodo head, è possibile specificare i percorsi dei file di database e di log durante l'installazione (nell'installazione guidata). Idealmente, posizionare la partizione di sistema, i dati e i log su piatti separati.
Se la creazione di report viene usata molto, è consigliabile spostare il database HPCReporting in un piatto separato.
Per informazioni sullo spostamento di un database, vedere Spostare un database tramite scollegamento e collegamento (Transact-SQL).
Impostazioni dell'istanza di SQL Server
Per ridurre al minimo il paging della memoria, assicurarsi che l'istanza di SQL Server disponga di un'allocazione di memoria sufficiente. È possibile impostare la memoria per l'istanza di SQL Server tramite SQL Server Management Studio, in Proprietà server per l'istanza. Ad esempio, se i database si trovano in un nodo head con 16 GB di memoria, potrebbe essere necessario allocare 8-10 GB per SQL Server.
Per ridurre al minimo la contesa di core nel nodo head tra i processi di SQL Server e i processi HPC, impostare il flag di parallelizzazione per l'istanza di SQL Server su 1. Per impostazione predefinita, il flag è impostato su 0, il che significa che non sono previsti limiti al numero di core usati da SQL. Impostandolo su 1, si limitano i processi di SQL Server a 1 core.
Impostazioni di conservazione dei dati HPC
di database HPCManagement
A partire da HPC Pack 2012 R2 Update 1, l'amministratore del cluster è in grado di specificare il numero di giorni prima che il servizio inizi ad archiviare i dati del log delle operazioni nel database HPCManagement e il numero di giorni di conservazione dei dati del log delle operazioni archiviati. Ad esempio, per impostare l'archivio del log operazioni ogni 7 giorni e per essere eliminato dopo la conservazione per 180 giorni, eseguire HPC PowerShell come amministratore e digitare il cmdlet seguente:
Set-HpcClusterProperty –OperationArchive 7
Set-HpcClusterProperty –OperationRetention 180
database HPCScheduler
Le proprietà, l'allocazione e la cronologia dei processi vengono archiviate nel database HPCScheduler. Per impostazione predefinita, i dati sui processi completati vengono conservati per cinque giorni. Il periodo di conservazione dei record del processo (TtlCompletedJobs) determina per quanto tempo archiviare i dati per i record seguenti:
Dati sui processi completati (Fine, Failedo Canceled) nel database HPCScheduler.
Dati comuni SOA archiviati nella condivisione Runtime$.
Risultati e dati dei test di diagnostica nel database HPCDiagnostics.
Messaggi per sessioni durevoli completate archiviate dal nodo broker tramite MSMQ.
I processi presenti nel Configurazione dello stato non vengono eliminati dal database. I processi devono essere annullati dal proprietario del processo o da un amministratore del cluster (o completati in altro modo) e quindi verranno eliminati in base ai criteri della cronologia dei processi.
È possibile configurare questa proprietà usando il cmdlet Set-HpcClusterProperty
Set-HpcClusterProperty –TtlCompletedJobs 3
Questa proprietà può essere configurata anche nella impostazioni cronologia processi della finestra di dialogo configurazione dell'utilità di pianificazione processi HPC.
di database HPCReporting
I dati cronologici relativi al cluster, ad esempio l'utilizzo del cluster, la disponibilità dei nodi e le statistiche sui processi, vengono aggregati e archiviati nel database HPCReporting. Il database archivia anche i dati non elaborati relativi ai processi disponibili per supportare la creazione di report personalizzati quando è abilitata l'estendibilità dei dati (è abilitata per impostazione predefinita). Ad esempio, è possibile creare report di chargeback personalizzati che corrispondono ai metodi di addebito usati dall'organizzazione. Per informazioni sull'uso dei dati non elaborati per la creazione di report personalizzati, vedere Guida dettagliata all'estendibilità dei report.
Nella tabella seguente vengono descritte le proprietà del cluster che controllano l'estendibilità dei dati e i periodi di conservazione per i dati non elaborati. Queste impostazioni non influiscono sui dati aggregati usati per i report predefiniti. È possibile visualizzare i valori delle proprietà con il cmdlet Get-HPCClusterProperty
Set-HpcClusterProperty –DataExtensibilityEnabled $false
Proprietà | Descrizione |
---|---|
DataExtensibilityEnabled | Specifica se il cluster archivia le informazioni per la creazione di report personalizzati relativi a processi, nodi e allocazione di processi ai nodi. True indica che il cluster archivia informazioni per la creazione di report personalizzati su processi, nodi e allocazione di processi ai nodi. False indica che il cluster non archivia queste informazioni. Il valore predefinito è True. |
DataExtensibilityTtl | Specifica il numero di giorni in cui il database HPCReporting deve archiviare tutte le informazioni sui processi e sui nodi, ad eccezione dell'allocazione dei processi ai nodi. Questo parametro ha un valore predefinito pari a 365. |
AllocationHistoryTtl | Specifica il numero di giorni in cui il database HPCReporting deve archiviare informazioni sull'allocazione dei processi ai nodi. Questo parametro ha un valore predefinito pari a 5. |
ReportingDBSize | Contiene le dimensioni correnti del database HPCReporting. Questo valore è una stringa che include le unità di misura per le dimensioni. Questo parametro è di sola lettura. Per visualizzare questa proprietà, il computer che esegue HPC PowerShell deve essere in grado di accedere al database HPCReporting. Per altre informazioni sull'abilitazione dell'accesso remoto al database, vedere Distribuzione di un cluster con database remoti guida dettagliata. |
Per stimare le dimensioni necessarie per il database HPCReporting nel cluster, vedere Stima delle dimensioni del database di report.
di database HPCDiagnostics
Le informazioni e i risultati delle esecuzioni dei test di diagnostica vengono archiviati nel database HPCDiagnostics. Il periodo di conservazione dei record del processo (TtlCompletedJobs) determina per quanto tempo archiviare i dati relativi alle esecuzioni di test completate.
di database HPCMonitoring
I dati del contatore delle prestazioni raccolti e aggregati dai nodi del cluster dal servizio server di monitoraggio HPC e dal servizio client di monitoraggio HPC vengono archiviati nel database HPCMonitoring.
I dati del contatore delle prestazioni vengono aggregati per minuto, per ora e per giorno. Il periodo di conservazione dei dati per i dati del contatore delle prestazioni del nodo è definito dalle proprietà del cluster nella tabella seguente. È possibile configurare queste proprietà usando il cmdlet Set-HpcClusterProperty.
Proprietà | Descrizione |
---|---|
MinuteCounterRetention | Specifica il periodo di conservazione in giorni per i dati del contatore delle prestazioni minuti. Il valore predefinito è 3 giorni. |
HourCounterRetention | Specifica il periodo di conservazione in giorni per i dati del contatore delle prestazioni dell'ora. Il valore predefinito è 30 giorni. |
DayCounterRetention | Specifica il periodo di conservazione in giorni per i dati del contatore delle prestazioni del giorno. Il valore predefinito è 180 giorni. |
È possibile stimare le dimensioni necessarie per il database HpcMonitoring in base al numero di nodi, al numero di contatori delle prestazioni e al periodo di conservazione. Ad esempio, usando un MinuteCounterRetention predefinito periodo di 3 giorni (4.320 minuti) e 27 contatori delle prestazioni con ogni voce di valore delle prestazioni che richiede circa 40 byte, ogni nodo richiederebbe:
4.320 x 27 x 40 = 4.665.600 byte o circa 5 MB.
Per un cluster con 1000 nodi, sarebbero necessari circa 5 GB di spazio di archiviazione.
Linee guida per la manutenzione
Un piano di manutenzione tipico di SQL Server illustra quanto segue:
Backup del database
Controlli di coerenza
Deframmentazione dell'indice
È possibile monitorare la frammentazione dell'indice usando SQL Server Management Studio e deframmentare gli indici quando appropriato tramite un piano di manutenzione.
In genere è consigliabile ricompilare gli indici dopo 250.000 processi o un mese (a meno breve), se non più spesso. La frequenza con cui si eseguono controlli di coerenza e backup dipenderà dai requisiti aziendali. È consigliabile eseguire la manutenzione solo quando non è presente alcuna attività utente, preferibilmente durante un tempo di inattività pianificato (soprattutto per i cluster di dimensioni maggiori), in quanto può influire negativamente sulla velocità effettiva del processo e sull'esperienza utente.
Per informazioni sulle procedure consigliate per la manutenzione del database, vedere Suggerimenti principali per la manutenzione efficace del database.
Nota
Per informazioni importanti sul backup e il ripristino dei database HPC, vedere Backup e ripristino in Windows HPC Server.