Назад | Перейти на главную страницу

Ограничьте использование памяти приложением несколькими экземплярами

Я установил программу на 3 разных компьютерах, указывающую на одну и ту же базу данных, работающую одновременно. Они отвечают за чтение огромного файла, обработку всего и сохранение в базе данных. База данных работает на главной машине, и у нас может быть запущено несколько экземпляров одной и той же программы.

Когда на главном компьютере (физическом компьютере под управлением Windows Server 2016) запущено несколько экземпляров, процент памяти увеличивается до 96, а время ожидания базы данных увеличивается.

Я вижу 3 возможных подхода:

1 - Ограничьте объем памяти, доступной в SQL Server, до X% от свободной памяти на сервере. При таком подходе объем памяти SQL-сервера будет уменьшаться по мере запуска большего количества приложений.

2 - Ограничьте объем памяти, доступной приложениям в Windows Server. Это позволило бы мне никогда не использовать все ресурсы сервера, когда сервер sql и многие экземпляры приложений конкурируют за память. Windows Server позволит использовать до Y% памяти всеми пользовательскими приложениями (включая SQL Server).

3 - Ограничьте использование памяти всеми экземплярами до 60% от максимальной памяти.

Есть ли способ реализовать любой из этих сценариев? Если все они возможны, какой из них лучше масштабируется в окнах? Можете ли вы указать мне правильное направление реализации таких ограничений?