Delen via


Beschikbaar geheugen configureren voor rapportservertoepassingen

Van toepassing op: SQL Server 2016 (13.x) Reporting Services en latere versies Power BI Report Server

Voor inhoud met betrekking tot eerdere versies van SQL Server Reporting Services (SSRS) raadpleegt u Wat is SQL Server Reporting Services?

Belangrijk

De informatie in dit artikel is alleen van toepassing op functies met betrekking tot gepagineerde rapporten (RDL's) in Power BI Report Server. Power BI-rapporten (PBIX) en hun geplande vernieuwingsactiviteiten in Power BI Report Server worden niet beïnvloed door deze instellingen. Zie Problemen met gepland vernieuwen oplossen in Power BI Report Server voor hulp bij gepland vernieuwingsgeheugen.

Hoewel Reporting Services alle beschikbare geheugen kan gebruiken, kunt u het standaardgedrag overschrijven. U kunt het gedrag overschrijven door een bovengrens te configureren voor de totale hoeveelheid geheugenbronnen die zijn toegewezen aan Reporting Services-servertoepassingen. U kunt ook drempelwaarden instellen die ervoor zorgen dat de rapportserver de prioriteit wijzigt en aanvragen verwerkt, afhankelijk van of deze onder lage, gemiddelde of zware geheugenbelasting valt. Bij lage geheugenbelasting reageert de rapportserver door een iets hogere prioriteit te geven aan interactieve of on-demand rapportverwerking. Bij hoge geheugenbelasting gebruikt de rapportserver meerdere technieken om operationeel te blijven met behulp van de beperkte resources die beschikbaar zijn.

In dit artikel worden de configuratie-instellingen beschreven die u kunt opgeven en hoe de server reageert wanneer geheugendruk een factor wordt bij het verwerken van aanvragen.

Beleid voor geheugenbeheer

Reporting Services reageert op systeemresourcebeperkingen door de hoeveelheid geheugen die wordt toegewezen aan specifieke toepassingen en typen verwerkingsaanvragen aan te passen. Toepassingen die worden uitgevoerd in de Report Server-service en die onderhevig zijn aan geheugenbeheer, zijn onder andere:

  • De webportal, een webfront-endtoepassing voor de rapportserver.

  • Report Server-webservice, gebruikt voor interactieve verwerking van rapporten en aanvragen op aanvraag.

  • Een toepassing voor achtergrondverwerking, gebruikt voor geplande rapportverwerking, levering van abonnementen en databaseonderhoud.

Beleidsregels voor geheugenbeheer zijn van toepassing op de Report Server-service als geheel en niet op afzonderlijke toepassingen die binnen het proces worden uitgevoerd.

Als er geen geheugendruk op het systeem is, vraagt elke servertoepassing om geheugen bij het opstarten, voorafgaand aan het ontvangen van aanvragen, om optimale prestaties te leveren wanneer aanvragen uiteindelijk worden ontvangen. Naarmate geheugendruk wordt opgebouwd, past de rapportserver het procesmodel aan zoals beschreven in de volgende tabel.

Geheugendruk Serverreactie
Low De huidige aanvragen worden nog steeds verwerkt. Nieuwe aanvragen worden bijna altijd geaccepteerd. Aanvragen die naar de achtergrondverwerkingstoepassing worden omgeleid, krijgen een lagere prioriteit dan aanvragen die zijn gericht op de Webservice van Report Server.
Gemiddeld Huidige aanvragen worden verwerkt. Nieuwe aanvragen kunnen worden geaccepteerd. Aanvragen die naar de achtergrondverwerkingstoepassing worden omgeleid, krijgen een lagere prioriteit dan aanvragen die zijn gericht op de Webservice van Report Server. Geheugentoewijzingen voor alle drie de servertoepassingen worden verminderd, met relatief grotere verminderingen van achtergrondverwerking om meer geheugen beschikbaar te maken voor webserviceaanvragen.
High Geheugentoewijzing wordt verder verminderd. Servertoepassingen die meer geheugen aanvragen, worden geweigerd. Huidige aanvragen worden vertraagd en duren langer om te voltooien. Nieuwe aanvragen worden niet geaccepteerd. De rapportserver verplaatst in-geheugen gegevensbestanden naar de schijf.

Als geheugenbeperkingen ernstig worden en er geen geheugen beschikbaar is voor het afhandelen van nieuwe aanvragen, retourneert de rapportserver een http 503-server niet-beschikbare fout. Dit resultaat treedt op terwijl de huidige aanvragen worden voltooid. In sommige gevallen kunnen de toepassingsdomeinen worden gerecycled om de geheugenbelasting onmiddellijk te verminderen.

Hoewel u de antwoorden van de rapportserver niet kunt aanpassen aan verschillende scenario's met geheugendruk, kunt u configuratie-instellingen opgeven die de grenzen definiëren die de reacties met hoge, gemiddelde en lage geheugendruk scheiden.

Wanneer moet u instellingen voor geheugenbeheer aanpassen

De standaardinstellingen stellen ongelijke bereik in voor lage, gemiddelde en hoge geheugendruk. Standaard is de zone met lage geheugendruk groter dan de zones voor gemiddelde en hoge geheugendruk. Deze configuratie is optimaal voor het verwerken van belastingen die gelijkmatig zijn verdeeld of die incrementeel groeien of afnemen. In dit scenario is de overgang tussen zones geleidelijk en heeft de rapportserver tijd om de reactie aan te passen.

Het wijzigen van de standaardinstellingen is handig als het laadpatroon pieken bevat. Wanneer er plotselinge pieken zijn in de verwerkingsbelasting, kan de rapportserver snel van geen geheugendruk tot geheugentoewijzingsfouten gaan. Dit resultaat kan optreden als u meerdere gelijktijdige exemplaren van een geheugenintensief rapport hebt dat op hetzelfde moment begint. Als u dit type verwerkingsbelasting wilt afhandelen, wilt u dat de rapportserver zo snel mogelijk overgaat naar een gemiddelde of hoge geheugendrukrespons, zodat de verwerking kan worden vertraagd. Met deze configuratie kunnen meer aanvragen worden voltooid. Als u meer aanvragen wilt voltooien, moet u de waarde van MemorySafetyMargin verlagen, zodat de zone met lage geheugendruk kleiner wordt ten opzichte van de andere zones. Dit zorgt ervoor dat reacties op gemiddelde en hoge geheugendruk eerder optreden.

Configuratie-instellingen voor geheugenbeheer

Configuratie-instellingen die de geheugentoewijzing voor de rapportserver beheren, bevattenWorkingSetMaximum, WorkingSetMinimumen MemorySafetyMarginMemoryThreshold.

  • WorkingSetMaximum en WorkingSetMinimum definieer het bereik van het beschikbare geheugen. U kunt deze instellingen configureren om een bereik van beschikbare geheugen in te stellen voor de rapportservertoepassingen. Als u meerdere toepassingen op dezelfde computer host, kan dit geheugen nuttig zijn. U kunt bepalen dat de rapportserver een onevenredige hoeveelheid systeembronnen gebruikt ten opzichte van andere toepassingen op dezelfde computer.

  • MemorySafetyMargin en MemoryThreshold stel de grenzen in voor lage, gemiddelde en hoge geheugendruk. Reporting Services neemt voor elke status corrigerende actie om ervoor te zorgen dat rapportverwerking en andere aanvragen op de juiste wijze worden verwerkt ten opzichte van de hoeveelheid geheugen die beschikbaar is op de computer. U kunt configuratie-instellingen opgeven die de afbakening tussen lage, hoge en gemiddelde drukniveaus bepalen.

    Hoewel u de configuratie-instellingen kunt wijzigen, worden de prestaties van de rapportverwerking hierdoor niet verbeterd. Het wijzigen van de configuratie-instellingen is alleen handig als aanvragen worden verwijderd voordat ze zijn voltooid. De beste manier om de serverprestaties te verbeteren, is door de rapportserver of afzonderlijke rapportservertoepassingen op toegewezen computers te implementeren.

In de volgende afbeelding ziet u hoe de instellingen samen worden gebruikt om onderscheid te maken tussen lage, gemiddelde en hoge geheugendruk:

Schermopname van de configuratie-instellingen voor de geheugenstatus.

In de volgende tabel worden de WorkingSetMaximum, WorkingSetMinimum, MemorySafetyMargin- en MemoryThreshold-instellingen beschreven. Configuratie-instellingen worden opgegeven in het RSReportServer.config-bestand.

Onderdeel Description
WorkingSetMaximum Hiermee geeft u een geheugendrempel op waarna geen nieuwe aanvragen voor geheugentoewijzingen worden verleend aan rapportservertoepassingen.

De rapportserver stelt WorkingSetMaximum standaard in op de hoeveelheid beschikbaar geheugen op de computer. Deze waarde wordt gedetecteerd wanneer de service wordt gestart.

Deze instelling wordt niet weergegeven in het RSReportServer.config bestand, tenzij u deze handmatig toevoegt. Als u wilt dat de rapportserver minder geheugen gebruikt, kunt u het RSReportServer.config bestand wijzigen en het element en de waarde toevoegen. Geldige waarden variëren van 0 tot maximum gehele getal. Deze waarde wordt uitgedrukt in kilobytes.

Wanneer de waarde van WorkingSetMaximum is bereikt, accepteert de rapportserver geen nieuwe aanvragen. Aanvragen die momenteel worden uitgevoerd, kunnen worden voltooid. Nieuwe aanvragen worden alleen geaccepteerd wanneer het geheugengebruik lager is dan de waarde die is opgegeven via WorkingSetMaximum.

Als bestaande aanvragen meer geheugen blijven gebruiken nadat de waarde is bereikt, worden alle toepassingsdomeinen van de WorkingSetMaximum rapportserver gerecycled. Zie Toepassingsdomeinen voor Report Server-toepassingen voor meer informatie.
WorkingSetMinimum Hiermee geeft u een lagere limiet voor resourceverbruik; de rapportserver geeft geen geheugen vrij als het totale geheugengebruik onder deze limiet valt.

De waarde wordt standaard berekend bij het opstarten van de service. De berekening is dat de eerste aanvraag voor geheugentoewijzing 60 procent van WorkingSetMaximumis.

Deze instelling wordt niet weergegeven in het RSReportServer.config bestand, tenzij u deze handmatig toevoegt. Als u deze waarde wilt aanpassen, moet u het WorkingSetMinimum element toevoegen aan het RSReportServer.config bestand. Geldige waarden variëren van 0 tot maximum gehele getal. Deze waarde wordt uitgedrukt in kilobytes.
MemoryThreshold Hiermee geeft u een percentage van WorkingSetMaximum dat de grens tussen scenario's met hoge en gemiddelde druk definieert. Als het geheugengebruik van de rapportserver deze waarde bereikt, vertraagt de rapportserver de verwerking van aanvragen en wijzigt de hoeveelheid geheugen die aan verschillende servertoepassingen is toegewezen. De standaardwaarde is 90. Deze waarde moet groter zijn dan de waarde die is ingesteld voor MemorySafetyMargin.
MemorySafetyMargin Hiermee geeft u een percentage van WorkingSetMaximum dat de grens tussen gemiddelde en lage drukscenario's definieert. Deze waarde is het percentage beschikbare geheugen dat is gereserveerd voor het systeem en kan niet worden gebruikt voor rapportserverbewerkingen. De standaardwaarde is 80.

Opmerking

MemoryLimit en MaximumMemoryLimit instellingen zijn verouderd in SQL Server 2008 (10.0.x) en latere versies. Als u een upgrade hebt uitgevoerd van een bestaande installatie of een RSReportServer.config bestand met deze instellingen gebruikt, leest de rapportserver deze waarden niet meer.

Voorbeeld van instellingen voor geheugenconfiguratie

In het volgende voorbeeld ziet u de configuratie-instellingen voor een rapportservercomputer die gebruikmaakt van aangepaste geheugenconfiguratiewaarden. Als u wilt toevoegen WorkingSetMaximum of WorkingSetMinimum, moet u de elementen en waarden in het RSReportServer.config bestand typen. Beide waarden zijn gehele getallen die kilobytes RAM-geheugen uitdrukken die u toedeelt aan de servertoepassingen. In het volgende voorbeeld wordt aangegeven dat de totale geheugentoewijzing voor de rapportservertoepassingen niet groter mag zijn dan 4 gigabyte. Als de standaardwaarde voor WorkingSetMinimum (60% van WorkingSetMaximum) acceptabel is, kunt u deze weglaten en alleen WorkingSetMaximum in het RSReportServer.config bestand opgeven. Dit voorbeeld laat zien hoe WorkingSetMinimum zou worden weergegeven als u het wilt toevoegen:

      Config files 
      <MemorySafetyMargin>80</MemorySafetyMargin>  
      <MemoryThreshold>90</MemoryThreshold>  
      <WorkingSetMaximum>4000000</WorkingSetMaximum>  
      <WorkingSetMinimum>2400000</WorkingSetMinimum>  

Over ASP.NET instellingen voor geheugenconfiguratie

Hoewel de Report Server-webservice en -webportal 2016 en hoger HTML5-toepassingen zijn, zijn eerdere versies ASP.NET toepassingen, reageert geen van beide toepassingen op geheugenconfiguratie-instellingen die u opgeeft in de processModel sectie van machine.config voor ASP.NET toepassingen die worden uitgevoerd in IIS 5.0 en hogere compatibiliteitsmodus. Reporting Services leest alleen de geheugenconfiguratie-instellingen van het RSReportServer.config bestand.