Monitoraggio e manutenzione di SharePoint Server 2010
Si applica a: SharePoint Server 2010
Ultima modifica dell'argomento: 2015-03-09
In questo articolo vengono fornite informazioni sul monitoraggio e sui contatori delle prestazioni per le farm di Microsoft SharePoint Server 2010. Per mantenere le prestazioni di sistema di SharePoint Server 2010 a un livello adeguato, è necessario monitorare il server per individuare potenziali colli di bottiglia. Per poter eseguire un monitoraggio efficace, è necessario conoscere gli indicatori chiave che segnaleranno se una parte specifica della farm richiede attenzione, nonché essere in grado di interpretare tali indicatori. Se si rileva che la farm non soddisfa i requisiti definiti, è possibile adattarla aggiungendo o rimuovendo risorse hardware, modificando la topologia o cambiando la modalità di archiviazione dei dati.
Le informazioni contenute in questa sezione sono utili agli amministratori per configurare manualmente i contatori delle prestazioni e altre impostazioni. Per ulteriori informazioni sul monitoraggio dello stato e sulla risoluzione dei problemi tramite gli strumenti di monitoraggio dello stato incorporati nell'interfaccia di Amministrazione centrale, vedere gli articoli seguenti:
Prima di leggere questo articolo, vedere Panoramica del dimensionamento e della gestione della capacità per SharePoint Server 2010.
Contenuto dell'articolo:
Configurazione del monitoraggio
Rimozione dei colli di bottiglia
Configurazione del monitoraggio
Di seguito è riportato un elenco delle impostazioni che è possibile modificare per monitorare l'ambiente nelle fasi iniziali e per determinare se è necessario apportare eventuali modifiche. Considerare che il potenziamento delle funzionalità di monitoraggio inciderà sullo spazio su disco richiesto dal database servizio di utilizzo. Nel momento in cui l'ambiente è stabile e non è più necessario eseguire un monitoraggio dettagliato, è possibile ripristinare i valori predefiniti delle impostazioni.
Impostazione | Valore | Note |
---|---|---|
Protezione da attacchi flood al registro eventi |
Disattivata |
Il valore predefinito è Attivata. Può essere disattivata per raccogliere il maggior numero possibile di dati di monitoraggio. Per un funzionamento normale, è consigliabile attivarla. |
Pianificazione processi timer |
||
Importazione dati di utilizzo di Microsoft SharePoint Foundation |
5 minuti |
Il valore predefinito è 30 minuti. Impostando un valore più basso, i dati vengono importati nel database servizio di utilizzo con maggiore frequenza e questo è particolarmente utile durante la risoluzione dei problemi. Per un funzionamento normale, è consigliabile impostare 30 minuti. |
Provider di diagnostica |
||
Attiva tutti i provider di diagnostica |
Attivata |
Il valore predefinito è Disattivata, tranne per il provider "Monitoraggio dello stato della ricerca - Traccia eventi". Questi provider raccolgono i dati di integrità per diversi componenti e funzionalità. Per un funzionamento normale, è possibile ripristinare il valore predefinito. |
Imposta intervalli pianificazione "job-diagnostics-performance-counter-wfe-provider" e "job-diagnostics-performance-counter-sql-provider" |
1 minuto |
Il valore predefinito è 5 minuti. Impostando un valore più basso, il polling viene eseguito con maggiore frequenza e questo è particolarmente utile durante la risoluzione dei problemi. Per un funzionamento normale, è consigliabile impostare 5 minuti. |
Varie |
||
Attiva traccia stack per richieste di contenuto |
Attivata |
Il valore predefinito è Disattivata. Attivando questa impostazione, è possibile effettuare la diagnosi degli errori relativi alle richieste di contenuto utilizzando la traccia dello stack del processo. Per un funzionamento normale, deve essere disattivata. |
Attiva dashboard di sviluppo |
Attivata |
Il valore predefinito è Disattivata. Attivando questa impostazione, è possibile effettuare la diagnosi delle pagine lente o di altri problemi utilizzando il dashboard di sviluppo. Per un funzionamento normale e quando la risoluzione dei problemi non è più necessaria, deve essere disattivata. |
Raccolta dati di utilizzo |
||
Importazione dei dati di utilizzo del contenuto Esportazione dei dati di utilizzo del contenuto Richieste di pagina Uso caratteristica Utilizzo query di ricerca Utilizzo inventario siti Processi timer Utilizzo valutazioni |
Attivata |
Attivando la registrazione di questa serie di contatori, è possibile raccogliere un maggior numero di dati di utilizzo dall'intero ambiente e comprendere meglio i modelli di traffico all'interno dell'ambiente. |
Contatori delle prestazioni
Se ci si avvale del database servizio di utilizzo, è possibile aggiungervi i contatori delle prestazioni utili per il monitoraggio e la valutazione delle prestazioni della farm, in modo che i relativi valori vengano registrati automaticamente a intervalli specifici (ogni 30 minuti per impostazione predefinita). In questo modo, è possibile eseguire query sul database servizio di utilizzo per recuperare tali contatori e rappresentare in un grafico i risultati nel tempo. Di seguito è riportato un esempio di come utilizzare il cmdlet Add-SPDiagnosticsPerformanceCounter di PowerShell per aggiungere il contatore % Processor Time al database servizio di utilizzo. Deve essere eseguito solo in uno dei server Web:
Add-SPDiagnosticsPerformanceCounter -Category "Processor" -Counter "% Processor Time" -Instance "_Total" -WebFrontEnd
Per qualsiasi sistema server è consigliabile monitorare alcuni contatori delle prestazioni generici, descritti nella tabella seguente.
Contatore delle prestazioni | Descrizione |
---|---|
Processor |
È consigliabile monitorare le prestazioni del processore per controllare che il relativo utilizzo complessivo non resti costantemente a livelli elevati (oltre l'80%) perché ciò significherebbe che il sistema non è in grado di gestire picchi di attività improvvisi. Tale verifica è inoltre utile per evitare che un problema relativo a un componente generi un effetto domino, causando un malfunzionamento anche dei componenti restanti. Se ad esempio si dispone di tre server Web, è opportuno verificare che l'utilizzo medio della CPU di tutti i server sia al di sotto del 60% in modo che, in caso di guasto di uno di essi, gli altri due abbiano ancora margine per gestire il carico extra. |
Network Interface |
Monitorare la velocità con cui i dati vengono inviati e ricevuti tramite la scheda di interfaccia di rete. Tale valore deve restare al di sotto del 50% della capacità di rete. |
Disks and Cache |
È buona norma monitorare con regolarità diverse opzioni relative ai dischi logici. Lo spazio su disco disponibile è un aspetto fondamentale in qualsiasi studio relativo alla capacità, ma è altrettanto importante considerare il tempo di inattività del disco. A seconda del tipo di applicazioni o di servizi in esecuzione nei server, può essere necessario tenere sotto controllo i tempi di lettura e scrittura su disco. Lunghi tempi di accodamento per la funzione di scrittura o lettura influiscono negativamente sulle prestazioni, così come la cache incide in modo significativo sulle operazioni di lettura e scrittura. È pertanto necessario monitorare un eventuale aumento degli errori della cache. |
Memory and Paging File |
Monitorare la quantità di memoria fisica disponibile per l'allocazione. In caso di memoria insufficiente, l'utilizzo del file di paging sarà eccessivo e aumenterà il numero degli errori di pagina al secondo. |
Contatori di sistema
Nella tabella seguente vengono fornite informazioni sugli oggetti e sui contatori di sistema che è possibile aggiungere alla serie di contatori monitorati nel database servizio di utilizzo tramite SPDiagnosticPerformanceCounter in un server Web.
Oggetti e contatori | Descrizione |
---|---|
Processor |
|
% Processor Time |
Indica l'utilizzo del processore in un intervallo di tempo. Se l'utilizzo resta costantemente a livelli troppo elevati, è possibile avere ripercussioni negative sulle prestazioni. Ricordare di considerare il valore "Total" nei sistemi multiprocessore. È possibile misurare l'utilizzo anche per ogni processore per garantire prestazioni bilanciate tra core. |
Disk |
|
- Avg. Disk Queue Length |
Indica il numero medio di richieste sia di lettura che di scrittura accodate per il disco selezionato durante l'intervallo di tempo campione. Una coda su disco più lunga può non rappresentare un problema, sempre che le operazioni di lettura/scrittura su disco non ne risentano e che il sistema sia in grado di funzionare in modo stabile senza espandere l'accodamento. |
Avg. Disk Read Queue Length |
Numero medio di richieste di lettura accodate. |
Avg. Disk Write Queue Length |
Numero medio di richieste di scrittura accodate. |
Disk Reads/sec |
Numero di operazioni di lettura su disco al secondo. |
Disk Writes/sec |
Numero di operazioni di scrittura su disco al secondo. |
Memory |
|
- Available Mbytes |
Indica la quantità di memoria fisica disponibile per l'allocazione. In caso di memoria insufficiente, l'utilizzo del file di paging sarà eccessivo e aumenterà il numero degli errori di pagina al secondo. |
- Cache Faults/sec |
Questo contatore indica la frequenza con cui si verificano gli errori quando una pagina viene ricercata nella cache del file system e non viene trovata. L'errore può essere a livello software se la pagina è in memoria oppure a livello hardware se la pagina è su disco. Un utilizzo sostenuto della cache per le operazioni di lettura e scrittura può influire in modo significativo sulle prestazioni del server. È necessario monitorare un eventuale aumento degli errori della cache, indicato da una riduzione del valore di Async Fast Reads/sec o Read Aheads/sec. |
- Pages/sec |
Questo contatore indica la velocità con cui le pagine vengono lette o scritte su disco per risolvere errori di pagina a livello hardware. Se tale valore aumenta, significa che vi sono problemi di prestazioni per l'intero sistema. |
Paging File |
|
- % Used e % Used Peak |
Il file di paging del server, a volte indicato come file di scambio, contiene indirizzi di memoria "virtuale" su disco. Gli errori di pagina si verificano quando un processo deve arrestarsi e attendere che le risorse "virtuali" necessarie vengano recuperate dal disco in memoria. La frequenza degli errori sarà maggiore se la memoria fisica non è adeguata. |
NIC |
|
- Total Bytes/sec |
Questa è la velocità con cui i dati vengono inviati e ricevuti tramite la scheda di interfaccia di rete. Potrebbe essere necessario indagare ulteriormente se tale velocità è superiore al 40-50% della capacità di rete. Per un'indagine più precisa, monitorare Bytes received/sec e Bytes Sent/sec. |
Process |
|
- Working Set |
Questo contatore indica le dimensioni correnti (in byte) del working set per un determinato processo. Tale memoria è riservata per il processo, anche se non è in uso. |
- % Processor Time |
Questo contatore indica la percentuale di tempo del processore utilizzata da un determinato processo. |
Thread Count (_Total) |
Numero corrente di thread. |
ASP.NET |
|
Requests Total |
Numero totale di richieste dall'avvio del servizio. |
Requests Queued |
In Microsoft SharePoint Foundation 2010 sono disponibili i blocchi predefiniti per le pagine HTML di cui viene eseguito il rendering nel browser utente su HTTP. Questo contatore indica il numero di richieste in attesa di essere elaborate. |
Request Wait Time |
Numero di millisecondi attesi dalla richiesta più recente nella coda per l'elaborazione. Man mano che aumenta il numero degli eventi di attesa, peggiorano le prestazioni per il rendering delle pagine per gli utenti. |
Requests Rejected |
Numero totale di richieste non eseguite a causa di risorse del server insufficienti per l'elaborazione. Questo contatore rappresenta il numero di richieste che restituiscono un codice di stato HTTP 503, che indica che il server è troppo occupato. |
Requests Executing (_Total) |
Numero di richieste attualmente in esecuzione. |
Requests/Sec (_Total) |
Numero di richieste eseguite al secondo. Rappresenta la velocità effettiva corrente dell'applicazione. Con un carico costante, questo numero deve restare entro un determinato intervallo, bloccando altre attività nel server, ad esempio la Garbage Collection, il thread di eliminazione del contenuto della cache o gli strumenti server esterni. |
.NET CLR Memory |
|
# Gen 0 Collections |
Indica per quante volte viene eseguita la Garbage Collection degli oggetti di generazione 0, ovvero degli oggetti allocati più di recente, dall'avvio dell'applicazione. Questo numero è utile come rapporto #Gen 0: #Gen 1: #Gen 2 per verificare che il numero di raccolte di generazione 2 non superi di molto le raccolte di generazione 0, idealmente di un fattore pari a 2. |
# Gen 1 Collections |
Indica per quante volte viene eseguita la Garbage Collection degli oggetti di generazione 1 dall'avvio dell'applicazione. |
# Gen 2 Collections |
Indica per quante volte viene eseguita la Garbage Collection degli oggetti di generazione 2 dall'avvio dell'applicazione. Il valore del contatore aumenta alla fine di una Garbage Collection di generazione 2, ovvero di una Garbage Collection completa. |
% Time in GC |
Indica la percentuale di tempo trascorso utilizzata per eseguire una Garbage Collection dall'ultimo ciclo di Garbage Collection. Questo contatore in genere indica il lavoro eseguito dal Garbage Collector per raccogliere e compattare la memoria per conto dell'applicazione e viene aggiornato solo alla fine di ogni Garbage Collection. Il contatore non indica una media, in quanto il relativo valore corrisponde all'ultimo valore osservato. In condizioni di funzionamento normali il valore dovrebbe essere inferiore al 5%. |
Contatori d SQL Server
Nella tabella seguente vengono fornite informazioni sugli oggetti e sui contatori di SQL Server.
Oggetti e contatori | Descrizione |
---|---|
Statistiche generali |
Questo oggetto fornisce contatori per monitorare l'attività generale a livello del server, ad esempio il numero di connessioni correnti e il numero di utenti che si connettono e disconnettono ogni secondo dai computer in cui è in esecuzione un'istanza di SQL Server. |
Connessioni utente |
Questo contatore indica la quantità di connessioni utente nell'istanza di SQL Server. Se questo valore aumenta del 500% rispetto al valore di base, è possibile che si verifichi un rallentamento delle prestazioni. |
Database |
Questo oggetto fornisce contatori per monitorare le operazioni di copia di massa, la velocità effettiva di backup e ripristino e le attività del registro delle transazioni. Monitorare le transazioni e il relativo registro per determinare l'entità dell'attività degli utenti nel database e la quantità di dati contenuta in tale registro. L'entità dell'attività degli utenti può determinare le prestazioni del database e influire sulle dimensioni del registro, il blocco e la replica. Il monitoraggio di attività del registro di basso livello per misurare l'attività degli utenti e l'utilizzo delle risorse consente di individuare i colli di bottiglia delle prestazioni. |
Transazioni/sec |
Questo contatore indica la quantità di transazioni eseguite al secondo in un determinato database o nell'intera istanza di SQL Server. Tale numero è utile per creare un riferimento di base e per eseguire la risoluzione dei problemi. |
Blocchi |
Questo oggetto fornisce informazioni sui blocchi di SQL Server per i singoli tipi di risorse. |
Numero di deadlock/sec |
Questo contatore indica il numero di deadlock al secondo in SQL Server. Tale valore normalmente deve essere uguale a 0. |
Tempo medio di attesa (ms) |
Questo contatore indica il tempo medio di attesa per ogni richiesta di blocco che ha comportato un'attesa. |
Tempo di attesa blocchi (ms) |
Questo contatore indica il tempo di attesa totale per i blocchi nell'ultimo secondo. |
Attese di blocco/sec |
Questo contatore indica il numero di blocchi al secondo che non sono stati soddisfatti immediatamente e hanno dovuto attendere la disponibilità di risorse. |
Latch |
Questo oggetto fornisce contatori per monitorare i blocchi di risorse di SQL Server interni denominati latch. Il monitoraggio dei latch per determinare l'attività degli utenti e l'utilizzo delle risorse consente di identificare i colli di bottiglia delle prestazioni. |
Tempo medio attesa latch (ms) |
Questo contatore indica il tempo di attesa medio dei latch per le richieste di latch sono dovute rimanere in attesa. |
Attese latch/sec |
Questo contatore indica il numero di richieste di latch al secondo che non è stato possibile soddisfare immediatamente. |
Statistiche SQL |
Questo oggetto fornisce contatori per monitorare la compilazione e il tipo di richieste inviate a un'istanza di SQL Server. Il monitoraggio del numero di compilazioni e ricompilazioni di query e del numero di batch ricevuti da un'istanza di SQL Server consente di ottenere un'indicazione della rapidità con cui SQL Server elabora le query degli utenti e dell'efficacia con cui Query Optimizer elabora le query. |
Compilazioni SQL/sec |
Questo contatore indica quante volte al secondo viene effettuato l'accesso al percorso del codice di compilazione. |
Ricompilazioni SQL/sec |
Questo contatore indica quante volte al secondo vengono avviate ricompilazioni delle istruzioni. |
Cache dei piani |
Questo oggetto fornisce contatori per monitorare l'utilizzo della memoria da parte di SQL Server per archiviare oggetti quali stored procedure, trigger e istruzioni Transact-SQL ad hoc e preparate. |
Percentuale riscontri cache |
Questo contatore indica il rapporto tra i riscontri cache e le ricerche per i piani. |
Cache buffer |
Questo oggetto fornisce contatori per monitorare l'utilizzo della memoria da parte di SQL Server per archiviare le pagine di dati, le strutture di dati interne e la cache delle procedure, nonché contatori per monitorare le operazioni di I/O fisiche durante la lettura e la scrittura di pagine di database da parte di SQL Server. |
Percentuale riscontri cache buffer |
Questo contatore indica la percentuale di pagine trovate nella cache buffer senza dover effettuare operazioni di lettura dal disco. Il rapporto corrisponde al numero totale di riscontri cache diviso per il numero totale di ricerche nella cache dall'avvio di un'istanza di SQL Server. |
Rimozione dei colli di bottiglia
I colli di bottiglia di sistema rappresentano un punto di contesa in cui le risorse disponibili non sono sufficienti per gestire le richieste di transazioni degli utenti e possono verificarsi a livello dell'hardware fisico, dell'ambiente operativo o dell'applicazione. La causa del collo di bottiglia spesso è riconducibile a soluzioni di terze parti o a codice personalizzato non efficiente la cui modifica può garantire risultati migliori rispetto all'aggiunta di ulteriore hardware. Un'altra causa comune dei colli di bottiglia è una configurazione errata della farm oppure un'implementazione non efficiente di una soluzione che struttura i dati in modo tale da richiedere più risorse del necessario. Per l'amministratore del sistema, è essenziale gestire i colli di bottiglia monitorando costantemente le prestazioni. Quando si identifica un problema di prestazioni, è necessario valutare la soluzione migliore per rimuovere il collo di bottiglia. I contatori delle prestazioni e altre applicazioni di monitoraggio, come ad esempio System Center Operations Manager (SCOM), sono gli strumenti principali per registrare e analizzare i problemi, consentendo di sviluppare una soluzione.
Risoluzione dei colli di bottiglia fisici
I colli di bottiglia fisici dipendono da una contesa relativa al processore, al disco, alla memoria e alla rete. In altri termini, troppe richieste si contendono risorse fisiche troppo esigue. Gli oggetti e i contatori descritti nell'argomento sul monitoraggio delle prestazioni indicano il componente a cui è relativo il problema di prestazioni, ad esempio il processore hardware o ASP.NET. Per risolvere i colli di bottiglia, è necessario identificare il problema e quindi apportare una o più modifiche per attenuare il problema di prestazioni.
I problemi di rado si verificano improvvisamente. Sono in genere preceduti da un peggioramento progressivo delle prestazioni di cui è possibile tenere traccia eseguendo regolarmente il monitoraggio con un proprio strumento o con un sistema più sofisticato come SCOM. In entrambi i casi, in diversa misura, è possibile incorporare le soluzioni in un avviso sotto forma di testo di avvertenza o di comandi con uno script.
Per risolvere i problemi connessi ai colli di bottiglia, potrebbe essere necessario apportare modifiche alle configurazioni dell'hardware o del sistema dopo avere stabilito che non sono causati da una configurazione errata, da soluzioni di terze parti o da codice personalizzato non efficiente oppure da un'implementazione non efficiente di una soluzione. Nelle tabelle seguenti sono riportate le soglie per i diversi problemi e le possibili opzioni di risoluzione. Alcune di tali opzioni suggeriscono aggiornamenti o modifiche hardware.
Oggetti e contatori | Problema | Opzioni di risoluzione |
---|---|---|
Processor |
||
Processor - % Processor Time |
Oltre il 75-85% |
Aggiornare il processore Aumentare il numero dei processori Aggiungere ulteriori server |
Disk |
||
Avg. Disk Queue Length |
Aumenta gradualmente, il sistema non è in una condizione stabile e si allungano i tempi di accodamento |
Aumentare il numero o la velocità dei dischi Passare da una configurazione con array allo striping Spostare parte dei dati in un server alternativo |
% Idle Time |
Superiore al 90% |
Aumentare il numero dei dischi Spostare i dati in un disco o in un server alternativo |
% Free Space |
Inferiore al 30% |
Aumentare il numero dei dischi Spostare i dati in un disco o in un server alternativo |
Memory |
||
Available Mbytes |
Inferiore a 2 GB in un server Web |
Aggiungere memoria Nota La memoria disponibile del server SQL sarà limitata da progettazione e non sempre indica un problema. |
Cache Faults/sec |
Superiore a 1 |
Aggiungere memoria Aumentare le dimensioni o la velocità della cache, se possibile Spostare i dati in un disco o in un server alternativo |
Pages/sec |
Superiore a 10 |
Aggiungere memoria |
Paging File |
||
- % Used e % Used Peak |
Il file di paging del server, a volte indicato come file di scambio, contiene indirizzi di memoria "virtuale" su disco. Gli errori di pagina si verificano quando un processo deve arrestarsi e attendere che le risorse "virtuali" necessarie vengano recuperate dal disco in memoria. La frequenza degli errori sarà maggiore se la memoria fisica non è adeguata. |
Aggiungere memoria |
NIC |
||
Total Bytes/sec |
Oltre il 40-50% della capacità di rete. Questa è la velocità con cui i dati vengono inviati e ricevuti tramite la scheda di interfaccia di rete. |
Indagare ulteriormente monitorando Bytes received/sec e Bytes Sent/sec Valutare di nuovo la velocità della scheda di interfaccia di rete Verificare il numero, le dimensioni e l'utilizzo dei buffer di memoria |
Process |
||
Working Set |
Superiore all'80% della memoria totale |
Aggiungere memoria |
% Processor Time |
Oltre il 75-85% |
Aumentare il numero dei processori Ridistribuire il carico di lavoro in ulteriori server |
ASP.NET |
||
Application Pool Recycles |
Diversi al giorno, con conseguenti rallentamenti intermittenti |
Verificare di non aver implementato impostazioni che eseguono automaticamente e inutilmente il riciclo del pool di applicazioni durante il giorno |
Requests Queued |
Centinaia o migliaia di richieste accodate |
Implementare ulteriori server Web Il valore massimo per questo contatore è 5.000 ed è possibile modificare questa impostazione nel file Machine.config |
Request Wait Time |
Man mano che aumenta il numero degli eventi di attesa, peggiorano le prestazioni per il rendering delle pagine per gli utenti |
Implementare ulteriori server Web |
Requests Rejected |
Superiore a 0 |
Implementare ulteriori server Web |
See Also
Concepts
Panoramica del dimensionamento e della gestione della capacità per SharePoint Server 2010
Esecuzione dei test delle prestazioni di SharePoint Server 2010
Pianificazione della capacità per SharePoint Server 2010
Health monitoring (SharePoint Server 2010)
Pianificazione e configurazione dell'archiviazione e della capacità di SQL Server (SharePoint Server 2010)