Слишком много попаданий в приложение замедляет производительность из-за чрезмерного использования оперативной памяти SQL Server? - PullRequest
0 голосов
/ 09 июня 2019

У меня есть очередь, связанная с общей производительностью системы: Архитектура нашего приложения выглядит следующим образом:

Клиентский конец => Приложение AngularJs со служебными вызовами для получения / публикации данных - это клиентское приложение размещается на сервере приложений Windows через IIS.

У нас есть 3 приложения web api 2, размещенные на одном сервере приложений в IIS, уровень данных - это в основном вызов на основе Entity Framework. Эти API вызываются клиентским приложением через вызовы AngularJs $ https.

У нас есть отдельный сервер базы данных с SQL Server 2014. Конфигурация сервера выглядит следующим образом:

Сервер баз данных => ОЗУ 512 ГБ, Процессор - 56-ядерный процессор

Сервер приложений => ОЗУ 256 ГБ, процессор - 56-ядерный процессор

В IIS 10 рабочих процессов.

Теперь проблема:

Когда в приложении происходит слишком много обращений (около 1000 обращений в течение 10 минут), сервер SQL потребляет почти 95% оперативной памяти, и приложения слишком медленно работают. Я знаю, что SQL-сервер после использования памяти не освобождает его, пока не поступят новые запросы. Поэтому, вероятно, потребление ОЗУ не является проблемой. Как только приложение замедляется остается тем же самым, пока мы не перезапустим Сервис SQL Server на сервере базы данных.

Обратите внимание, что на данном этапе загрузка процессора сервера приложений составляет в среднем 20%, а использование ОЗУ - в среднем 15%. Загрузка процессора сервера базы данных составляет в среднем 25%, а использование ОЗУ составляет 95%, как описано ранее.

Есть ли какой-нибудь способ повысить производительность? Здесь есть какая-то архитектурная ошибка. Пожалуйста, помогите.

...