Ограничить ресурсы для запросов к базе данных

Продукты
Все продукты

Данная функциональность доступна в Creatio версии 8.0.2 и выше для СУБД MSSQL PostgreSQL.

Вы можете повысить производительность приложения, ограничив количество ресурсов процессоров (потоков), которые может использовать тяжелый запрос к базе данных. Это позволит избежать влияния ресурсоемких процедур на работу пользователей Creatio. Такие запросы могут отправляться как в фоновом режиме, например, при выполнении бизнес-процессов или работе интеграций, так и при работе пользователей, например, сортировке реестров по агрегирующей колонке. В данной статье описана настройка ограничений для on-site приложений. Для cloud приложений эти ограничения применяются автоматически после обновления на версию 8.0.2.

Наиболее эффективно механизм ограничения потоков работает на серверах, имеющих 4 и более ядер.

В общем случае настройка ограничений состоит из следующих шагов:

  1. Включить ограничение ресурсов в конфигурационных файлах. Подробнее >>>
  2. Установить ограничение ресурсов в настройках Creatio. Подробнее >>>

Включить ограничение ресурсов для запросов 

По умолчанию в Creatio возможность устанавливать ограничение количества потоков отключена. Включить ее можно в секции ApplyMaxDopHintToUserQueries конфигурационного файла:

  • Для NET Framework это файлы web.config, которые находятся в корневой папке приложения и в папке TerrasoftWebApp.
  • Для .NET Core это файл Terrasoft.WebHost.dll.config, который находится в корневой папке приложения.
Пример строки конфигурационного файла
<configuration> 
   …
     <appsettings>
       …
         <add key="ApplyMaxDopHintToUserQueries" value="true">
       …
     </appsettings>  
   …
</configuration> 

Настроить ограничение ресурсов для запросов 

Для управления ресурсами, которые могут использоваться для запросов к базе данных, предназначена системная настройка “Количество потоков MaxDopQueryHint” (код “MaxDopHintThreadsCount”). Чтобы настроить ограничение ресурсов:

  1. Откройте дизайнер системы по кнопке btn_system_designer00001.png в правом верхнем углу приложения.

  2. В группе Настройка системы кликните по ссылке Системные настройки.

  3. Откройте системную настройку “Количество потоков MaxDopQueryHint” (код “MaxDopHintThreadsCount”)..

  4. В поле Значение по умолчанию установите желаемое ограничение ресурсов. Рекомендуем использовать от четверти до половины от общего количества доступных потоков, при условии, что один поток соответствует одному ядру процессора. Таким образом вы предотвратите ситуацию, когда все доступные потоки могут быть заняты ресурсоемкими операциями.

    На заметку. Ограничение в половину от доступного количества потоков позволяет выполнять все необходимые процессы и задачи, при этом не замедляя работу пользователей. В случае, когда используется от 4 до 8 ядер, рекомендуем установить ограничение от 2 до 4, например, половину всех доступных потоков.

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