Производительность SSRS. Медленный запуск отчетов.

By | January 19, 2015

Я думаю многие сталкивались с проблемой, когда неожиданно отчеты начинали работать с большой задержкой. Есть две возможности повлиять на поведение SSRS относительно этой проблемы.

Первая – это установка соответствующего значения опции Recycle Time в конфигурационном файле для SSRS.

Этот конфигурационный файл находится в каталоге, в который был установлен SSRS, обычно это C:\Program Files\Microsoft SQL Server\MSRS12.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver.config (для собственного режима) или
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\WebServices\Reporting\rsreportserver.config (для режима интеграции с SharePoint). Опция Recycle Time задает в минутах (значение по умолчанию 720) время очистки домена приложений, т.е. через сколько минут SSRS очистит ресурсы, выделенные для отчетов. Это значение может быть увеличено, чтобы позволить SSRS удерживать ресурсы на более длительный период для предотвращения замедления старта отчета из-за повторной инициализации ресурсов службы SSRS.

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

Второе решение проблемы с задержками работы отчетов – это управление доступной для сервера отчетов памяти.
У большинства организаций SSRS устанавливается не на отдельный сервер, а вместе с какими-нибудь другими службами. В этом случае в течении рабочего дня пока SSRS загружен ему выделяется достаточно памяти. Но как только наступает время простоя (например, ночью) операционная система может отобрать у сервера отчетов ресурсы. Решить эту проблему можно добавлением оперативной памяти, но не всегда это возможно. Другим решением может быть настройка периодического выполнения какого-нибудь отчета, чтобы сервер отчетов не простаивал. Но лучше всего провести настройку минимального значения используемого объема оперативной памяти.

Указанная опция называется WorkingSetMinimum, задается в килобайтах и не включена по-умолчанию в конфигурационный файл. Для определения необходимого значения рекомендуется понаблюдать за процессом Reporting Services (ReportingServicesService.exe).


В приведенном примере ReportingServicesService.exe использует 46,772Kb оперативной памяти. Мы можем округлить это значение до 50,000Kb и добавить соответствующий параметр в конфигурационном файле

‹Service›


‹WorkingSetMinimum›50000‹/WorkingSetMinimum›


Но не забывайте, что такая принудительная выемка оперативной памяти из работы может негативно сказаться на других приложениях/службах, работающих на этом сервере, при большом объёме задействованной памяти. Проводите периодический мониторинг производительности.