Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: SQL Server 2016 (13.x) Serviços de Relatórios e versões
posteriores Power BI Report Server
Para obter conteúdo relacionado a versões anteriores do SQL Server Reporting Services (SSRS), consulte O que é o SQL Server Reporting Services?
Importante
A informação deste artigo aplica-se apenas a funcionalidades relacionadas com relatórios paginados (RDLs) dentro do Power BI Report Server. Os relatórios do Power BI (PBIX) e as suas atividades de atualização programadas no Power BI Report Server não são afetados por estas definições. Para ajuda com memória de atualização agendada, consulte Resolução de problemas de atualização agendada no Power BI Report Server.
Embora os Serviços de Relatórios possam usar toda a memória disponível, pode sobrepor o comportamento padrão. Pode alterar o comportamento configurando um limite superior para a quantidade total de recursos de memória alocados às aplicações de servidor dos Serviços de Relatório. Também pode definir limiares que façam o servidor de relatórios alterar a forma como prioriza e processa pedidos, dependendo se está sob pressão de memória baixa, média ou elevada. Em baixos níveis de pressão de memória, o servidor de relatórios responde dando uma prioridade ligeiramente superior ao processamento interativo ou de relatórios sob demanda. Em níveis elevados de pressão de memória, o servidor de relatórios utiliza múltiplas técnicas para se manter operacional utilizando os recursos limitados disponíveis.
Este artigo descreve as definições de configuração que pode especificar e como o servidor responde quando a pressão de memória se torna um fator no processamento dos pedidos.
Políticas de gestão de memória
Os Serviços de Relatórios respondem às limitações de recursos do sistema ajustando a quantidade de memória alocada a aplicações específicas e tipos de pedidos de processamento. As aplicações que correm no serviço do Servidor de Relatórios e que estão sujeitas a gestão de memória incluem:
O portal web, uma aplicação de interface web para o servidor de relatórios.
Serviço Web do Servidor de Relatórios, utilizado para processamento interativo de relatórios e pedidos sob demanda.
Uma aplicação de processamento em segundo plano, usada para processamento de relatórios programados, entrega por subscrição e manutenção de bases de dados.
As políticas de gestão de memória aplicam-se ao serviço do Servidor de Relatórios como um todo, e não às aplicações individuais que correm dentro do processo.
Se não houver pressão de memória no sistema, cada aplicação servidor solicita alguma memória no arranque, antes de receber pedidos, para garantir o desempenho ótimo quando os pedidos são finalmente recebidos. À medida que a pressão de memória aumenta, o servidor de relatórios ajusta o seu modelo de processos conforme descrito na tabela seguinte.
| Pressão da memória | Resposta do servidor |
|---|---|
| Low | Os pedidos atuais continuam a ser processados. Novos pedidos são quase sempre aceites. Os pedidos que são direcionados para a aplicação de processamento em segundo plano têm uma prioridade inferior aos pedidos dirigidos ao serviço Web do Servidor de Relatórios. |
| Médio | Os pedidos atuais continuam a ser processados. Novos pedidos podem ser aceites. Os pedidos que são direcionados para a aplicação de processamento em segundo plano têm uma prioridade inferior aos pedidos dirigidos ao serviço Web do Servidor de Relatórios. As alocações de memória para as três aplicações servidor são reduzidas, com reduções relativamente maiores no processamento em segundo plano para disponibilizar mais memória para pedidos de serviços Web. |
| High | A alocação de memória é ainda mais reduzida. As aplicações de servidor que solicitam mais memória são negadas. Os pedidos atuais são lentos e demoram mais tempo a ser concluídos. Novos pedidos não são aceites. O servidor de relatórios troca ficheiros de dados em memória para disco. Se as restrições de memória se tornarem severas e não houver memória disponível para lidar com novos pedidos, o servidor de relatórios devolve um erro de servidor HTTP 503 indisponível. Este resultado acontece enquanto as solicitações atuais estão a ser concluídas. Em alguns casos, os domínios de aplicação podem ser reciclados para reduzir imediatamente a pressão de memória. |
Embora não possas personalizar as respostas do servidor de relatórios a diferentes cenários de pressão de memória, podes especificar definições de configuração que definam os limites que separam as respostas de pressão de memória alta, média e baixa.
Quando personalizar as definições de gestão de memória
As definições padrão especificam intervalos desiguais para pressão de memória baixa, média e alta. Por defeito, a zona de baixa pressão de memória é maior do que as zonas de pressão média e alta. Esta configuração é ótima para processar cargas distribuídas uniformemente ou que crescem ou diminuem incrementalmente. Neste cenário, a transição entre zonas é gradual e o servidor de relatórios tem tempo para ajustar a sua resposta.
Modificar as definições padrão é útil se o padrão de carga incluir picos. Quando há picos súbitos na carga de processamento, o servidor de relatórios pode passar de zero pressão de memória para falhas de alocação de memória rapidamente. Este resultado pode ocorrer se tiver múltiplas instâncias simultâneas de um relatório intensivo em memória que começam ao mesmo tempo. Para lidar com este tipo de carga de processamento, quer que o servidor de relatórios passe para uma resposta de pressão de memória média ou alta o mais rapidamente possível, para poder abrandar o processamento. Esta configuração permite que mais pedidos sejam concluídos. Para permitir que mais pedidos sejam concluídos, deves baixar o valor de MemorySafetyMargin para tornar a zona de baixa pressão de memória mais pequena em relação às outras zonas. Ao fazê-lo, as respostas à pressão de memória média e elevada ocorrem mais cedo.
Definições de configuração para gestão de memória
As definições de configuração que controlam a alocação de memória para o servidor de relatórios incluem WorkingSetMaximum, WorkingSetMinimum, MemorySafetyMargin, e MemoryThreshold.
WorkingSetMaximumeWorkingSetMinimumdefinem o alcance da memória disponível. Pode configurar estas definições para definir um intervalo de memória disponível para as aplicações do servidor de relatórios. Se estiveres a alojar várias aplicações no mesmo computador, esta memória pode ser útil. Pode determinar que o servidor de relatórios está a usar uma quantidade desproporcional de recursos do sistema em relação a outras aplicações no mesmo computador.MemorySafetyMargineMemoryThresholddefinir os limites para baixos, médios e altos níveis de pressão de memória. Para cada estado, os Serviços de Relatórios tomam medidas corretivas para garantir que o processamento de relatórios e outros pedidos sejam tratados adequadamente em relação à quantidade de memória disponível no computador. Pode especificar definições de configuração que determinam a delimitação entre baixos, altos e médios níveis de pressão.Embora possas alterar as definições de configuração, fazê-lo não melhora o desempenho do processamento de relatórios. Alterar as definições de configuração só é útil se os pedidos estiverem a ser descartados antes de serem concluídos. A melhor forma de melhorar o desempenho do servidor é implementar o servidor de relatórios ou aplicações individuais do servidor de relatórios em computadores dedicados.
A ilustração seguinte mostra como as definições são usadas em conjunto para distinguir entre baixos, médios e elevados níveis de pressão de memória:
A tabela seguinte descreve WorkingSetMaximum, WorkingSetMinimum, MemorySafetyMargin, e MemoryThreshold definições. As definições de configuração são especificadas no ficheiroRSReportServer.config.
| Elemento | Description |
|---|---|
WorkingSetMaximum |
Especifica um limiar de memória após o qual não são concedidos novos pedidos de alocação de memória para reportar aplicações do servidor. Por defeito, o servidor de relatórios define WorkingSetMaximum a quantidade de memória disponível no computador. Este valor é detetado quando o serviço começa.Esta definição não aparece no RSReportServer.config ficheiro a menos que a adiciones manualmente. Se quiseres que o servidor de relatórios use menos memória, podes modificar o RSReportServer.config ficheiro e adicionar o elemento e o valor. Os valores válidos variam de 0 até ao número inteiro máximo. Este valor é expresso em kilobytes.Quando o valor de WorkingSetMaximum é atingido, o servidor de relatórios não aceita novos pedidos. Os pedidos atualmente em curso podem ser concluídos. Novos pedidos só são aceites quando o uso de memória fica abaixo do valor especificado através de WorkingSetMaximum.Se os pedidos existentes continuarem a consumir mais memória após atingir o WorkingSetMaximum valor, todos os domínios de aplicação do servidor de relatórios serão reciclados. Para mais informações, consulte Domínios de Aplicação para Aplicações de Servidor de Relatórios. |
WorkingSetMinimum |
Especifica um limite inferior para o consumo de recursos; O Servidor de Relatórios não liberta memória se o uso total de memória estiver abaixo deste limite. Por defeito, o valor é calculado no início do serviço. O cálculo é que o pedido inicial de alocação de memória é para 60 por cento de WorkingSetMaximum.Esta definição não aparece no RSReportServer.config ficheiro a menos que a adiciones manualmente. Se quiser personalizar este valor, deve adicionar o WorkingSetMinimum elemento ao RSReportServer.config ficheiro. Os valores válidos variam de 0 até ao número inteiro máximo. Este valor é expresso em kilobytes. |
MemoryThreshold |
Especifica uma percentagem de WorkingSetMaximum que define a fronteira entre cenários de alta e média pressão. Se a utilização de memória do servidor de relatórios atingir este valor, o servidor de relatórios reduz a velocidade do processamento dos pedidos e altera a quantidade de memória alocada a diferentes aplicações do servidor. O valor padrão é 90. Este valor deve ser maior do que o conjunto de valores para MemorySafetyMargin. |
MemorySafetyMargin |
Especifica uma percentagem de WorkingSetMaximum que define a fronteira entre cenários de média e baixa pressão. Este valor é a percentagem de memória disponível que está reservada para o sistema e que não pode ser usada para operações de servidor de relatórios. O valor padrão é 80. |
Observação
MemoryLimit e MaximumMemoryLimit as definições estão obsoletas no SQL Server 2008 (10.0.x) e versões posteriores. Se atualizaste uma instalação existente ou usaste um RSReportServer.config ficheiro que inclua essas definições, o servidor de relatórios deixou de ler esses valores.
Exemplo de definições de configuração de memória
O exemplo seguinte mostra as definições de configuração de um computador servidor de relatórios que utiliza valores de configuração de memória personalizados. Se quiser adicionar WorkingSetMaximum ou WorkingSetMinimum, deve escrever os elementos e valores no RSReportServer.config ficheiro. Ambos os valores são inteiros que expressam kilobytes de RAM que estás a alocar às aplicações servidoras. O exemplo seguinte especifica que a alocação total de memória para as aplicações do servidor de relatórios não pode exceder 4 gigabytes. Se o valor padrão de WorkingSetMinimum (60% de WorkingSetMaximum) for aceitável, pode omitir e especificar apenas WorkingSetMaximum no RSReportServer.config ficheiro. Este exemplo inclui WorkingSetMinimum para mostrar como pareceria se quisesse adicioná-lo:
Config files
<MemorySafetyMargin>80</MemorySafetyMargin>
<MemoryThreshold>90</MemoryThreshold>
<WorkingSetMaximum>4000000</WorkingSetMaximum>
<WorkingSetMinimum>2400000</WorkingSetMinimum>
Sobre as definições de configuração de memória do ASP.NET
Embora o serviço Web e o portal Web do Report Server de 2016 e posteriores sejam aplicações HTML5, as versões anteriores são aplicações ASP.NET; nenhuma das aplicações responde às definições de configuração de memória que especifica na secção processModel de machine.config para aplicações ASP.NET que são executadas em modo de compatibilidade com IIS 5.0 e superior. O Reporting Services lê apenas as definições de configuração de memória do RSReportServer.config ficheiro.