Configurare la memoria disponibile per le applicazioni del server di report
Si applica a: SQL Server 2016 (13.x) Reporting Services e versioni successive Server di report di Power BI
Per contenuti relativi a versioni precedenti di SQL Server Reporting Services (SSRS), vedere SQL Server 2014 Reporting Services.
Importante
Le informazioni contenute in questo articolo si applicano solo alle funzionalità correlate ai report impaginati (RDL) all'interno di Server di report di Power BI. I report di Power BI (PBIX) e le relative attività di aggiornamento pianificate all'interno di Server di report di Power BI non sono interessati da queste impostazioni. Per informazioni sulla memoria dell'aggiornamento pianificato, vedere Risolvere i problemi relativi all'aggiornamento pianificato in Server di report di Power BI.
Anche se Reporting Services può usare tutta la memoria disponibile, è possibile eseguire l'override del comportamento predefinito. È possibile eseguire l'override del comportamento configurando un limite massimo per la quantità totale di risorse di memoria allocate alle applicazioni server di Reporting Services. È inoltre possibile impostare soglie in modo che il server di report modifichi il modo in cui assegna la priorità ed elabora le richieste in base all'utilizzo basso, medio o alto della memoria. Se i livelli di utilizzo della memoria non sono elevati, il server di report risponde assegnando una priorità leggermente superiore all'elaborazione dei report interattiva o su richiesta. Se invece i livelli di utilizzo della memoria sono elevati, il server di report utilizza più tecniche per rimanere operativo utilizzando le limitate risorse disponibili.
In questo argomento vengono descritte le impostazioni di configurazione che è possibile specificare e le modalità di risposta del server quando l'utilizzo della memoria diventa un fattore da considerare nell'elaborazione delle richieste.
Criteri di gestione della memoria
Reporting Services rispetta i vincoli relativi alle risorse di sistema regolando la quantità di memoria allocata per applicazioni e tipi di elaborazione di richieste specifici. Di seguito vengono riportate le applicazioni eseguite nel servizio del server di report soggette alla gestione della memoria:
Il portale Web, un'applicazione Web front-end per il server di report.
Servizio Web ReportServer, utilizzato per l'elaborazione interattiva di report e per richieste su richiesta.
Applicazione di elaborazione in background utilizzata per l'elaborazione pianificata di report, il recapito di sottoscrizioni e la manutenzione di database.
I criteri di gestione della memoria si applicano al servizio del server di report nel complesso e non alle applicazioni singole eseguite all'interno del processo.
Se non è presente una pressione di memoria sul sistema, ogni applicazione server richiede memoria all'avvio, prima di ricevere richieste, per ottenere prestazioni ottimali quando le richieste vengono ricevute. Man mano che l'utilizzo di memoria aumenta, il server di report regola il modello di processo come descritto nella tabella seguente.
Utilizzo elevato della memoria | Risposta del server |
---|---|
Ridotto | L'elaborazione delle richieste correnti continua e le nuove richieste vengono accettate quasi sempre. Alle richieste dirette all'applicazione di elaborazione in background viene assegnata una priorità più bassa rispetto a quella assegnata alle richieste dirette al servizio Web ReportServer. |
Medio | L'elaborazione delle richieste correnti continua e le nuove richieste potrebbero essere accettate. Alle richieste dirette all'applicazione di elaborazione in background viene assegnata una priorità più bassa rispetto a quella assegnata alle richieste dirette al servizio Web ReportServer. Le allocazioni di memoria per le tre applicazioni server sono ridotte, con riduzioni relativamente maggiori per l'elaborazione in background in modo da aumentare la memoria disponibile per le richieste del servizio Web. |
Alto | L'allocazione della memoria è ridotta ulteriormente. Le applicazioni server che richiedono una quantità maggiore di memoria vengono negate, le richieste correnti vengono rallentate e completate in un tempo più lungo, Le nuove richieste non vengono accettate. Il server di report esegue lo swapping dei file di dati in memoria sul disco. Se i vincoli di memoria diventano gravi e non è disponibile memoria per gestire le nuove richieste, il server di report restituisce un errore HTTP 503 server non disponibile. Questo risultato si verifica durante il completamento delle richieste correnti. In alcuni casi i domini applicazione potrebbero essere riciclati per ridurre immediatamente l'utilizzo della memoria. |
Anche se non è possibile personalizzare le risposte del server di report a diversi scenari di utilizzo elevato della memoria, è possibile specificare le impostazioni di configurazione che definiscono i limiti che separano le risposte di utilizzo elevato, medio e basso della memoria.
Quando personalizzare le impostazioni di gestione della memoria
Le impostazioni predefinite specificano intervalli disuguali per l'utilizzo basso, medio e alto della memoria. Per impostazione predefinita, l'area riservata all'utilizzo della memoria basso è maggiore di quelle riservate per l'utilizzo della memoria medio e alto. Questo tipo di configurazione è ottimale per l'elaborazione di carichi distribuiti uniformemente o che aumentano o diminuiscono in modo incrementale. In questo scenario la transizione tra aree è graduale e il server di report dispone di tempo sufficiente per regolare la propria risposta.
La modifica delle impostazioni predefinite è utile se nel modello di carico sono presenti picchi. Quando si verificano picchi improvvisi nel carico di elaborazione, il server di report potrebbe passare rapidamente da una pressione di memoria a errori di allocazione della memoria. Questo risultato può verificarsi se sono presenti più istanze simultanee di un report a elevato utilizzo di memoria che iniziano contemporaneamente. Per gestire questo tipo di carico di elaborazione, è possibile fare in modo che il server di report risponda in base all'utilizzo medio o alto della memoria il prima possibile in modo da rallentare l'elaborazione. Questa configurazione consente il completamento di più richieste. Per consentire il completamento di più richieste, è consigliabile ridurre il valore per MemorySafetyMargin
per rendere più piccola la zona a bassa pressione di memoria rispetto alle altre zone. In questo modo, le risposte per la pressione di memoria media e elevata si verificano in precedenza.
Impostazioni di configurazione per la gestione della memoria
Le impostazioni di configurazione che controllano l'allocazione di memoria per il server di report sono WorkingSetMaximum
, WorkingSetMinimum
, MemorySafetyMargin
e MemoryThreshold
.
WorkingSetMaximum
eWorkingSetMinimum
definiscono l'intervallo di memoria disponibile. È possibile configurare queste impostazioni per specificare un intervallo di memoria disponibile per le applicazioni del server di report. Se si ospitano più applicazioni nello stesso computer, questa memoria può essere utile. È possibile determinare che il server di report utilizza una quantità sproporzionata di risorse di sistema rispetto ad altre applicazioni nello stesso computer.MemorySafetyMargin
eMemoryThreshold
consentono di impostare i limiti per i livelli basso, medio e alto di utilizzo della memoria. Per ogni stato, in Reporting Services vengono eseguite azioni correttive per garantire che l'elaborazione del report e le altre richieste siano gestire in modo appropriato rispetto alla quantità di memoria disponibile nel computer. È possibile specificare impostazioni di configurazione per stabilire il limite tra i livelli basso, medio e alto di utilizzo della memoria.Anche se è possibile modificare le impostazioni di configurazione, questa operazione non migliora le prestazioni di elaborazione dei report. La modifica delle impostazioni di configurazione è utile solo se le richieste vengono rilasciate prima che siano completate. Il modo migliore per ottimizzare le prestazioni del server consiste nel distribuire il server di report o le relative applicazioni singole in computer dedicati.
Nella figura seguente viene illustrato il modo in cui le impostazioni vengono utilizzate insieme per distinguere tra i livelli basso, medio e alto di utilizzo della memoria:
Nella tabella seguente vengono descritte le impostazioni WorkingSetMaximum
, WorkingSetMinimum
, MemorySafetyMargin
e MemoryThreshold
. Le impostazioni di configurazione sono specificate nel file RSReportServer.config.
Elemento | Descrizione |
---|---|
WorkingSetMaximum |
Consente di specificare una soglia di memoria oltre la quale non viene concessa alcuna allocazione di memoria alle applicazione del server di report che la richiedano. Per impostazione predefinita, il server di report imposta WorkingSetMaximum sulla quantità di memoria disponibile nel computer. Questo valore viene rilevato al momento dell'avvio del servizio.Questa impostazione non viene visualizzata nel RSReportServer.config file a meno che non venga aggiunta manualmente. Se si desidera che il server di report usi meno memoria, è possibile modificare il RSReportServer.config file e aggiungere l'elemento e il valore. I valori validi sono compresi nell'intervallo da 0 al numero intero massimo. Questo valore è espresso in KB.Quando viene raggiunto il valore per WorkingSetMaximum , il server di report non accetta nuove richieste. Le richieste attualmente in corso vengono completate, mentre le nuove richieste vengono accettate solo quando l'utilizzo di memoria scende al di sotto del valore specificato mediante WorkingSetMaximum .Se le richieste esistenti continuano a utilizzare più memoria dopo il raggiungimento del WorkingSetMaximum valore, tutti i domini applicazione del server di report verranno riciclati. Per ulteriori informazioni, vedere Application Domains for Report Server Applications. |
WorkingSetMinimum |
Specifica un limite inferiore per l'utilizzo delle risorse; il server di report non rilascia memoria se l'utilizzo complessivo della memoria è inferiore a questo limite. Per impostazione predefinita, il valore viene calcolato all'avvio del servizio. Il calcolo viene eseguito in base a una richiesta di allocazione di memoria iniziale pari al 60 percento di WorkingSetMaximum .Questa impostazione non viene visualizzata nel RSReportServer.config file a meno che non venga aggiunta manualmente. Se si desidera personalizzare questo valore, è necessario aggiungere l'elemento WorkingSetMinimum al RSReportServer.config file. I valori validi sono compresi nell'intervallo da 0 al numero intero massimo. Questo valore è espresso in KB. |
MemoryThreshold |
Consente di specificare una percentuale di WorkingSetMaximum che definisce il limite tra scenari relativi a un utilizzo alto e medio della memoria. Se l'utilizzo della memoria del server di report raggiunge questo valore, l'elaborazione delle richieste rallenta e la quantità di memoria allocata per applicazioni server diverse viene modificata. Il valore predefinito è 90. Questo valore deve essere maggiore del valore impostato per MemorySafetyMargin . |
MemorySafetyMargin |
Consente di specificare una percentuale di WorkingSetMaximum che definisce il limite tra scenari relativi a un utilizzo basso e medio della memoria. Questo valore è la percentuale di memoria disponibile riservata al sistema e non può essere usata per le operazioni del server di report. Il valore predefinito è 80. |
Nota
MemoryLimit
le impostazioni e MaximumMemoryLimit
sono obsolete in SQL Server 2008 (10.0.x) e versioni successive. Se è stata aggiornata un'installazione esistente o si usa un RSReportServer.config
file che include tali impostazioni, il server di report non legge più tali valori.
Esempio di impostazioni di configurazione della memoria
Nell'esempio seguente vengono mostrate le impostazioni di configurazione per un computer server di report che utilizza valori di configurazione della memoria personalizzati. Se si desidera aggiungere WorkingSetMaximum
o WorkingSetMinimum
, è necessario digitare gli elementi e i valori nel RSReportServer.config
file. Entrambi i valori sono numeri interi che esprimono kilobyte di RAM allocati alle applicazioni server. Nell'esempio seguente viene specificato che l'allocazione totale di memoria per le applicazioni del server di report non può superare i 4 gigabyte. Se il valore predefinito per WorkingSetMinimum
(60% di WorkingSetMaximum
) è accettabile, è possibile ometterlo e specificarlo solo WorkingSetMaximum
nel RSReportServer.config
file. In questo esempio il valore WorkingSetMinimum
è stato incluso per illustrarne la visualizzazione qualora si desiderasse aggiungerlo:
Config files
<MemorySafetyMargin>80</MemorySafetyMargin>
<MemoryThreshold>90</MemoryThreshold>
<WorkingSetMaximum>4000000</WorkingSetMaximum>
<WorkingSetMinimum>2400000</WorkingSetMinimum>
Informazioni sulle impostazioni di configurazione della memoria ASP.NET
Anche se il servizio Web ReportServer 2016 e versioni successive sono applicazioni HTML5, le versioni precedenti sono ASP.NET applicazioni, nessuna delle due applicazioni risponde alle impostazioni di configurazione della memoria specificate nella processModel
sezione di machine.config per le applicazioni ASP.NET eseguite in IIS 5.0 e versioni successive. Reporting Services legge le impostazioni di configurazione della memoria solo dal RSReportServer.config
file.
Contenuto correlato
File di configurazione RsReportServer.config
Modificare un file di configurazione di Reporting Services (RSreportserver.config)
Domini applicazione per applicazioni del server di report
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Invia e visualizza il feedback per