Анализ цели ошибки MSSQL без данных в реальном времени

#sql #sql-server #analysis #diagnostics

#sql #sql-сервер #анализ #диагностика

Вопрос:

Я ищу способ проанализировать, что вызвало эти ошибки на сервере MSSQL:

 A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 0 seconds. Working set (KB): 499352, committed (KB): 1024012, memory utilization: 48%.
2021-12-05 18:49:42.63 spid1504    Error: 8645, Severity: 17, State: 1.
2021-12-05 18:49:42.63 spid1504    A timeout occurred while waiting for memory resources to execute the query in resource pool 'internal' (1). Rerun the query.
 

Это происходит случайным образом (я не нашел причину, почему или когда или что может вызвать это) несколько раз в месяц. Я уже настроил некоторые счетчики мониторинга (https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/monitor-memory-usage?view=sql-server-ver15 ) в perfmon, но я думаю, что это не решит мою проблему.

Моя проблема в том, что я не знаю, что вызывает такое потребление памяти SQL. Я думаю, что это какой-то запрос с веб-сайта IIS, который размещен на том же сервере. Это еще хуже, потому что это рабочий сервер MSSQL с сервером IIS, и всегда, когда это происходит, некоторые администраторы собираются немедленно перезапустить весь сервер (потому что это продукт, и он должен работать). Поэтому у меня нет времени смотреть, что происходит на сервере, когда это происходит. На самом деле я даже не знаю (никто не знает), когда это произойдет снова. Мне нужно полагаться только на исторические данные. Любые мысли, как я могу найти достоверную информацию о том, что является причиной этого?

Сервер размещен как виртуальная машина с этой настройкой:

 Windows Server 2019 Datacenter
Microsoft SQL Server 2017 (Maximum server memory (in MB): 32768)
16 vcpus
64 GB RAM
 

Комментарии:

1. Вы пробовали это: brentozar.com/first-aid (не уверен, что это поможет, но может помочь)

2. Вы уже ограничиваете память SQL Server (до 32 ГБ?) Это будет указывать на ДОВОЛЬНО высокое использование памяти с веб-сайта — либо какие-то «необычные» требования, КРАЙНЕ плохое программирование (загрузка таблиц в память, затем фильтрация — был там, видел это), либо — просто здесь требуется больше памяти. 16 vcpu и 64 ГБ с sql server и iis — не уверен, что это сбалансировано. Кажется, нет.

3. Этот zip-файл первой помощи мне не поможет. Когда я вхожу на сервер после перезагрузки сервера, достоверной информации в реальном времени нет. Да, я согласен, это может быть действительно плохое программирование, но я не разработчик. Я просто ИТ-администратор, и меня попросили найти проблему. Я разговаривал с разработчиками, но они понятия не имеют, почему это происходит.

4. И я не настраивал сервер. Сегодня я впервые увидел это производство и этот сервер.

5. получение sp_whoisactive и анализ текущих активных процессов. Настройте его на периодическую запись данных в таблицу, чтобы иметь ретроспективные данные для анализа и поиска запросов с большим объемом памяти и высокой стоимостью.