보고서 서버 애플리케이션에 사용 가능한 메모리 구성

적용 대상: SQL Server 2016 (13.x) Reporting Services 이상 Power BI Report Server

이전 버전의 SSRS(SQL Server Reporting Services)와 관련된 콘텐츠는 SQL Server 2014 Reporting Services를 참조하세요.

Important

이 문서의 정보는 Power BI Report Server 내의 페이지를 매긴 보고서(RDL)와 관련된 기능에만 적용됩니다. Power BI(PBIX) 보고서 및 Power BI Report Server 내의 예약된 새로 고침 작업은 이러한 설정의 영향을 받지 않습니다. 예약된 새로 고침 메모리에 대한 도움말은 Power BI Report Server에서 예약된 새로 고침 문제 해결을 참조 하세요.

Reporting Services는 사용 가능한 모든 메모리를 사용할 수 있지만 기본 동작을 재정의할 수 있습니다. Reporting Services 서버 애플리케이션에 할당된 총 메모리 리소스 양에 대한 상한을 구성하여 동작을 재정의할 수 있습니다. 메모리 가중 정도가 낮은지, 보통인지, 높은지에 따라 보고서 서버가 요청의 우선 순위를 정하고 해당 요청을 처리하는 방법을 변경하도록 하는 임계값을 설정할 수도 있습니다. 메모리 가중 정도가 낮은 수준에서 보고서 서버는 대화형 또는 요청 시 실행 보고서 처리에 약간 더 높은 우선 순위를 부여하여 응답합니다. 메모리 가중 정도가 높은 수준에서 보고서 서버는 사용 가능한 제한된 리소스를 통해 여러 기술을 사용하여 작동 상태를 유지합니다.

이 문서에서는 메모리 가중 상태가 요청 처리의 요인이 될 때 지정할 수 있는 구성 설정과 서버의 응답 방식을 설명합니다.

메모리 관리 정책

Reporting Services는 특정 애플리케이션에 할당된 메모리 양과 처리 요청의 유형을 조정하여 시스템 리소스 제약 조건에 응답합니다. 보고서 서버 서비스에서 실행되고 메모리 관리의 대상이 되는 애플리케이션은 다음과 같습니다.

  • 웹 포털은 보고서 서버용 웹 프런트 엔드 애플리케이션입니다.

  • 보고서 서버 웹 서비스 - 대화형 보고서 처리 및 요청 시 실행 요청에 사용됩니다.

  • 백그라운드 처리 애플리케이션 - 예약된 보고서 처리, 구독 배달 및 데이터베이스 유지 관리에 사용됩니다.

메모리 관리 정책은 프로세스 내에서 실행되는 개별 애플리케이션이 아닌 보고서 서버 서비스 전체에 적용됩니다.

시스템에 메모리 부족이 없는 경우 각 서버 애플리케이션은 요청을 받기 전에 시작 시 일부 메모리를 요청하여 요청이 수신될 때 최적의 성능을 제공합니다. 메모리 가중 정도가 심해지면 보고서 서버가 다음 표에 설명된 대로 해당 프로세스 모델을 조정합니다.

메모리 압력 서버 응답
낮음 현재 요청이 계속 처리됩니다. 새 요청은 대부분 받아들여집니다. 백그라운드 처리 애플리케이션으로 전송된 요청에는 보고서 서버 웹 서비스로 전송된 요청보다 낮은 우선 순위가 부여됩니다.
중간 현재 요청이 계속 처리됩니다. 새 요청은 받아들여질 수 있습니다. 백그라운드 처리 애플리케이션으로 전송된 요청에는 보고서 서버 웹 서비스로 전송된 요청보다 낮은 우선 순위가 부여됩니다. 웹 서비스 요청에 더 많은 메모리를 사용할 수 있도록 백그라운드 처리의 메모리를 상대적으로 더 많이 줄여 세 개의 서버 애플리케이션 모두에 대한 메모리 할당이 줄어듭니다.
높음 메모리 할당이 더 줄어듭니다. 더 많은 메모리를 요청하는 서버 애플리케이션은 거부됩니다. 현재 요청은 느려져 완료되는 데 더 많은 시간이 소요됩니다. 새 요청은 허용되지 않습니다. 보고서 서버가 메모리 내 데이터 파일을 디스크로 스왑합니다.

메모리 제약 조건이 심각해지고 새 요청을 처리할 수 있는 메모리가 없는 경우 보고서 서버는 HTTP 503 서버를 사용할 수 없음 오류를 반환합니다. 이 결과는 현재 요청이 완료되는 동안 발생합니다. 경우에 따라 메모리 가중 정도를 즉시 낮추기 위해 애플리케이션 도메인이 재활용될 수 있습니다.

다른 메모리 압력 시나리오에 대한 보고서 서버 응답을 사용자 지정할 수는 없지만 높은, 중간 및 낮은 메모리 압력 응답을 구분하는 경계를 정의하는 구성 설정을 지정할 수 있습니다.

메모리 관리 설정을 사용자 지정해야 하는 경우

기본 설정은 낮은 메모리 가중, 보통 메모리 가중 및 높은 메모리 가중에 대해 서로 다른 범위를 지정합니다. 기본적으로 낮은 메모리 가중 영역은 보통 및 높은 메모리 가중 영역에 비해 더 큽니다. 이 구성은 고르게 분산되어 있거나 증분식으로 증가/감소하는 처리 부하에 가장 적합합니다. 이 시나리오에서 영역은 점진적으로 전환되므로 보고서 서버에 응답을 조정할 시간이 제공됩니다.

부하 패턴이 급격하게 변동되는 경우 기본 설정을 수정하면 유용합니다. 처리 부하가 갑자기 급증하면 보고서 서버가 메모리 부족에서 메모리 할당 오류로 빠르게 이동될 수 있습니다. 이 결과는 동시에 시작하는 메모리 집약적 보고서의 여러 동시 인스턴스가 있는 경우에 발생할 수 있습니다. 이러한 처리 부하 유형을 처리하기 위해서는 처리가 느려질 수 있도록 가능한 한 빨리 보고서 서버를 보통 또는 높은 메모리 가중 응답으로 이동해야 합니다. 이 구성을 사용하면 더 많은 요청을 완료할 수 있습니다. 더 많은 요청을 완료할 수 있도록 하려면 메모리 부족 영역을 다른 영역에 비해 작게 만드는 값을 MemorySafetyMargin 낮춰야 합니다. 이렇게 하면 중간 및 높은 메모리 압력에 대한 응답이 더 일찍 발생합니다.

메모리 관리를 위한 구성 설정

보고서 서버의 메모리 할당을 제어하는 구성 설정에는 WorkingSetMaximum, WorkingSetMinimumMemorySafetyMarginMemoryThreshold.

  • WorkingSetMaximumWorkingSetMinimum은 사용 가능한 메모리의 범위를 정의합니다. 이러한 설정을 구성하여 보고서 서버 애플리케이션에 대해 사용 가능한 메모리의 범위를 설정할 수 있습니다. 동일한 컴퓨터에서 여러 애플리케이션을 호스팅하는 경우 이 메모리가 유용할 수 있습니다. 보고서 서버가 동일한 컴퓨터의 다른 애플리케이션에 비해 불균형한 양의 시스템 리소스를 사용하고 있는지 확인할 수 있습니다.

  • MemorySafetyMarginMemoryThreshold는 메모리 가중의 낮음, 보통 및 높음 수준에 대한 경계를 설정합니다. 각 상태에 대해 Reporting Services는 보고서 처리 및 기타 요청이 컴퓨터에서 사용할 수 있는 메모리 양에 상대적으로 적절하게 처리되도록 수정 동작을 수행합니다. 낮음, 높음 및 보통 가중 수준 간 경계를 지정하는 구성 설정을 지정할 수 있습니다.

    구성 설정을 변경할 수 있지만 이렇게 하면 보고서 처리 성능이 향상되지 않습니다. 요청이 완료되기 전에 삭제되는 경우에만 구성 설정을 변경하는 것이 유용합니다. 서버 성능을 향상시키는 가장 좋은 방법은 전용 컴퓨터에 보고서 서버 또는 개별 보고서 서버 애플리케이션을 배포하는 것입니다.

다음 그림에서는 낮음, 보통 및 높음 수준의 메모리 가중 상태를 구분하기 위해 설정을 함께 사용하는 방법을 보여 줍니다.

Screenshot of the configuration settings for memory state.

다음 표에서는 WorkingSetMaximum, WorkingSetMinimumMemorySafetyMarginMemoryThreshold 설정에 대해 설명합니다. 구성 설정은 RSReportServer 구성 파일에 지정되어 있습니다.

요소 설명
WorkingSetMaximum 값 초과 시 보고서 서버 애플리케이션에 대한 새 메모리 할당 요청이 더 이상 허가되지 않는 메모리 임계값을 지정합니다.

기본적으로 보고서 서버는 컴퓨터에서 사용 가능한 메모리 양으로 설정합니다 WorkingSetMaximum . 이 값은 서비스가 시작될 때 검색됩니다.

이 설정은 수동으로 추가하지 않는 한 파일에 표시되지 RSReportServer.config 않습니다. 보고서 서버에서 메모리를 적게 사용하려면 파일을 수정 RSReportServer.config 하고 요소와 값을 추가할 수 있습니다. 유효한 값은 0에서 최대 정수 사이입니다. 이 값은 KB로 표시됩니다.

값에 WorkingSetMaximum 도달하면 보고서 서버는 새 요청을 수락하지 않습니다. 현재 진행 중인 요청은 완료되도록 허용됩니다. 새 요청은 메모리 사용이 에 지정된 값보다 낮은 경우에만 허용됩니다 WorkingSetMaximum.

값에 도달한 후에도 기존 요청이 더 많은 메모리를 WorkingSetMaximum 계속 사용하는 경우 모든 보고서 서버 애플리케이션이 기본 재활용됩니다. 자세한 내용은 Application Domains for Report Server Applications을 참조하세요.
WorkingSetMinimum 리소스 사용량에 대한 하한을 지정합니다. 전체 메모리 사용량이 이 제한보다 낮은 경우 보고서 서버는 메모리를 해제하지 않습니다.

기본적으로 이 값은 서비스 시작 시 계산됩니다. 계산은 초기 메모리 할당 요청이 60%의 WorkingSetMaximum경우입니다.

이 설정은 수동으로 추가하지 않는 한 파일에 표시되지 RSReportServer.config 않습니다. 이 값을 사용자 지정하려면 파일에 요소를 RSReportServer.config 추가 WorkingSetMinimum 해야 합니다. 유효한 값은 0에서 최대 정수 사이입니다. 이 값은 KB로 표시됩니다.
MemoryThreshold 높음 및 보통 가중 시나리오 간 경계를 정의하는 WorkingSetMaximum의 비율을 지정합니다. 보고서 서버 메모리 사용이 이 값에 도달하는 경우 보고서 서버는 요청 처리 속도를 낮추고 다른 서버 애플리케이션에 할당된 메모리 양을 변경합니다. 기본값은 90입니다. 이 값은 에 대해 MemorySafetyMargin설정된 값보다 커야 합니다.
MemorySafetyMargin 중간 및 저압 시나리오 사이의 경계를 정의하는 백분율 WorkingSetMaximum 을 지정합니다. 이 값은 시스템용으로 예약되어 있고 보고서 서버 작업에 사용할 수 없는 사용 가능한 메모리의 백분율입니다. 기본값은 80입니다.

참고 항목

MemoryLimitMaximumMemoryLimit 설정은 SQL Server 2008(10.0.x) 이상 버전에서 사용되지 않습니다. 기존 설치를 업그레이드하거나 이러한 설정을 포함하는 파일을 사용하는 RSReportServer.config 경우 보고서 서버는 더 이상 해당 값을 읽지 않습니다.

메모리 구성 설정 예

다음 예에서는 사용자 지정 메모리 구성 값을 사용하는 보고서 서버 컴퓨터에 대한 구성 설정을 보여 줍니다. 추가 WorkingSetMaximum 하려는 WorkingSetMinimum경우 파일의 요소와 값을 RSReportServer.config 입력해야 합니다. 두 값 모두 서버 애플리케이션에 할당하는 RAM의 킬로바이트 수를 나타내는 정수입니다. 다음 예제에서는 보고서 서버 애플리케이션에 대한 총 메모리 할당이 4GB를 초과할 수 없음을 지정합니다. (60%의WorkingSetMaximum) 기본값 WorkingSetMinimum 이 허용되는 경우 생략하고 파일에서 RSReportServer.configWorkingSetMaximum 지정할 수 있습니다. 이 예에서는 추가하는 경우 해당 값이 나타나는 방법을 보여 주기 위해 WorkingSetMinimum을 포함합니다.

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

ASP.NET 메모리 구성 설정 정보

2016 이상 보고서 서버 웹 서비스 및 웹 포털은 HTML5 애플리케이션이지만 이전 버전은 ASP.NET 애플리케이션이지만 두 애플리케이션 모두 IIS 5.0 이상 호환성 모드에서 processModel 실행되는 ASP.NET 애플리케이션에 대해 machine.config 섹션에서 지정한 메모리 구성 설정에 응답하지 않습니다. Reporting Services는 파일에서 RSReportServer.config 만 메모리 구성 설정을 읽습니다.

RsReportServer.config 구성 파일
Reporting Services 구성 파일 수정(RSreportserver.config)
보고서 서버 애플리케이션에 대한 애플리케이션 기본