SCOM Alert: SSRS 2016: Other processes use too much memory. Ограничиваем SSRS WorkingSetMinimum и WorkingSetMaximum

SCOM Alert SSRS 2016 Other processes use too much memoryЕсли на сервере с ОС Windows Server 2012 R2, подключенном к системе мониторинга System Center 2012 R2 Operations Manager (SCOM), установлены компоненты SQL Server Reporting Services (SSRS) и на этом сервере помимо компонент SSRS выполняются какие-либо другие приложения, мы можем получить предупреждение SCOM о том, что процессы не принадлежащие SSRS потребляют слишком много памяти.

Стандартный текст оповещения SCOM в таком случае выглядит примерно следующим образом:

Alert:  SSRS 2016: Other processes use too much memory
Source: MSRS13.MSSQLSERVER
Path:   KOM-APP01.holding.com
Description: Other processes can affect SSRS performance.
Total memory on the server: 7.99710464477539 GB SSRS WorkingSetMinimum: 4.79826278686523 GB SSRS WorkingSetMaximium: 7.99710464477539 GB Memory consumed by SSRS: 0.273075103759766 GB (3.41467463400231%) Memory consumed by other processes: 3.20417022705078 GB (40.0666287284875%)

В данном случае на сервере с 8GB ОЗУ, процессами отличными от SSRS потребляется более 40% памяти, что с точки зрения стандартных правил мониторинга SSRS в SCOM обозначается как источник потенциальных проблем.

Это происходит по причине того, что в конфигурации по умолчанию в SSRS из состава SQL Server 2016 показатель WorkingSetMinimum высчитывается, как 60% от имеющегося в сервере полного объёма ОЗУ. То есть в нашем случае подразумевается, что под нужды SSRS должно быть зарезервировано ~4,8GB. Однако, если мы понимаем, что такой объём ОЗУ нашему экземпляру SSRS в действительности не требуется, то мы можем изменить конфигурацию SSRS таким образом, чтобы ограничить его предполагаемые аппетиты.

В каталоге, где расположены исполняемые файлы экземпляры SSRS найдём файл с именем rsreportserver.config (по умолчанию расположен в каталоге C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer). Откроем файл в текстовом редакторе, найдём в разделе параметров Service параметр MemoryThreshold и добавим после него пару параметров WorkingSetMinimum и WorkingSetMaximum, переопределяющих стандартные значения минимального и максимального объёма ОЗУ, которые может использовать SSRS. Например, чтобы ограничить SSRS выделением памяти от ~1GB до ~2GB, добавим строки вида:

<WorkingSetMaximum>2000000</WorkingSetMaximum>
<WorkingSetMinimum>1000000</WorkingSetMinimum>

SSRS Memory settings in rsreportserver.config

Подробней о конфигурационный параметрах этого файла можно почитать в статье RsReportServer.config Configuration File, а о параметрах связанных с выделением памяти для SSRS в статье Configure Available Memory for Report Server Applications.

После внесённых конфигурационных изменений перезапустим службу экземпляра SSRS.

Описанная конфигурация позволит, во первых, сократить аппетиты SSRS на серверах, где помимо SSRS выполняются другие приложения, а во вторых, избавит нас от ранее обозначенных оповещений SCOM.

Добавить комментарий