Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
Коллеги, привет. Подскажите пожалуйста, как узнать сколько памяти используется каждой сессией. Есть представление sys.dm_exec_query_memory_grants в котором есть информация о памяти по сессиям, но там нет сессий, которым была выделена память и они в ней больше не нуждаются. Есть представление sys.dm_os_buffer_descriptors в котором страницы объектов в памяти. Можно ли как-то выйти на сессии? Проблематика: Иногда заканчивается память и необходимо понять, кто и каким запросом/сессией использует больше всего памяти. ----------- Андрей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 10:57 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
BelkinИногда заканчивается память и необходимо понять, кто и каким запросом/сессией использует больше всего памяти.Память в основном используется буферным пулом, а его невозможно разделить на сессии (то есть, если в 2х сессиях делается запрос к одним и тем же страницам данных, то получается, что обе сессии используют одну и ту же память) В sys.dm_exec_query_memory_grants показывается память именно для выполнения запроса, так что туда смотреть нужно, если у вас не хватает памяти, например, для сортировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 11:21 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
alexeyvgBelkinИногда заканчивается память и необходимо понять, кто и каким запросом/сессией использует больше всего памяти.Память в основном используется буферным пулом, а его невозможно разделить на сессии (то есть, если в 2х сессиях делается запрос к одним и тем же страницам данных, то получается, что обе сессии используют одну и ту же память) В sys.dm_exec_query_memory_grants показывается память именно для выполнения запроса, так что туда смотреть нужно, если у вас не хватает памяти, например, для сортировки. Спасибо за ответ. Про буферный пул понятно. Что касается sys.dm_exec_query_memory_grants , то на странице https://technet.microsoft.com/ru-ru/ms365393(v=sql.15) написано " Возвращает сведения обо всех запросах, которые запросили и ожидающих предоставления памяти или были присвоены предоставления памяти. В этом представлении не будут отображены запросы, которые не нуждаются в предоставлении памяти. " Получается, что есть запросы, которые выполняются, но в том представлении не будут фигурировать. И как тогда узнать, например, что именно на той сессии, что не отображена в представлении, расходуется больше всего памяти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 11:37 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
BelkinИ как тогда узнать, например, что именно на той сессии, что не отображена в представлении, расходуется больше всего памяти? если запросу не нужна память, то он не может ее перерасходовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 11:59 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
Эта view показывает запросы, которые уже получили память и выполняются. Выполните этот запрос на своем сервере и все увидите сами: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 12:05 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
BelkinПроблематика: Иногда заканчивается память и необходимо понять, кто и каким запросом/сессией использует больше всего памяти.Лучше бы показали оригинальное сообщение об ошибке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 12:51 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
BelkinИ как тогда узнать, например, что именно на той сессии, что не отображена в представлении, расходуется больше всего памяти?Вы же сами процитировали, что сессия расходует 0 памяти, и тогда она не отображается в представлении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 12:53 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
invmBelkinПроблематика: Иногда заканчивается память и необходимо понять, кто и каким запросом/сессией использует больше всего памяти.Лучше бы показали оригинальное сообщение об ошибке. не покажет. там наверняка все написано, просто кто-то не читатель. например, Error: 1204, Severity: 19, State: 4. The instance of the SQL Server Database Engine cannot obtain a LOCK resource at this time. Rerun your statement when there are fewer active users. Ask the database administrator to check the lock and memory configuration for this instance, or to check for long-running transactions. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 13:31 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
alexeyvgBelkinИ как тогда узнать, например, что именно на той сессии, что не отображена в представлении, расходуется больше всего памяти?Вы же сами процитировали, что сессия расходует 0 памяти, и тогда она не отображается в представлении. Я как такового сообщения не наблюдал. Видел, что запросы выполнялись минутами вместо секунд. При этом в sys.dm_os_memory я видел доступных пару сотен мегабайт памяти из 51Гб и сообщение "Available physical memory is high" Нет, чуток обманываю, пару раз при запуске запроса сам ловил, что-то типа того, что невозможно распределить память. "Не нуждаются в предоставлении памяти" - я понимаю это так, им уже предоставлено все, что они требовали. Тогда объясните мне пожалуйста, что за объем памяти для сессий указан в sys.dm_exec_query_memory_grants ? Сумма по колонке granted_memory_kb дает 2ГБ (это память именно на расчеты?), при этом в sys.dm_os_memory доступно около 10ГБ из 51ГБ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 14:30 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
Belkin"Не нуждаются в предоставлении памяти" - я понимаю это так, им уже предоставлено все, что они требовали. неправильно понимаете. не нуждается, например, банальный селект из одной таблицы без сортировки. зачем такому запросу memory grant? у него ни соединений, ни сортировок. читаешь и выплевываешь клиенту. почитайте что ли Understanding SQL server memory grant ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 14:49 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
BelkinВидел, что запросы выполнялись минутами вместо секунд. надо было смотреть ожидания. может, ждал снятия блокировок. может, ошибся в плане и пошел делать Nested Loops на миллионах строк. тут вообще ни слова о памяти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 14:51 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
Yasha123BelkinВидел, что запросы выполнялись минутами вместо секунд. надо было смотреть ожидания. может, ждал снятия блокировок. может, ошибся в плане и пошел делать Nested Loops на миллионах строк. тут вообще ни слова о памяти Проблема была с памятью! Немного неверно написал в предыдущем сообщении "При этом в sys.dm_os_memory я видел доступных пару сотен мегабайт памяти из 51Гб и сообщение "Available physical memory is LOW"" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 15:42 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
Belkin"Не нуждаются в предоставлении памяти" - я понимаю это так, им уже предоставлено все, что они требовали.Нет, это значит, что им не нужна память для выполнения запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 16:02 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
Belkin"При этом в sys.dm_os_memory я видел доступных пару сотен мегабайт памяти из 51Гб и сообщение "Available physical memory is LOW""Где сообщение, в sys.dm_os_memory, или на экране Windows? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 16:03 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
alexeyvgBelkin"При этом в sys.dm_os_memory я видел доступных пару сотен мегабайт памяти из 51Гб и сообщение "Available physical memory is LOW""Где сообщение, в sys.dm_os_memory, или на экране Windows? Сообщение, в sys.dm_os_memory ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 16:21 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
Belkinalexeyvgпропущено... Где сообщение, в sys.dm_os_memory, или на экране Windows? Сообщение, в sys.dm_os_memory виртуалочка? у нас тоже было LOW, когда виртуалка отгребала серверную память. накажите системиста, выдайте серверной учетке LOCK PAGES IN MEMORY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 16:34 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
Yasha123Belkinпропущено... Сообщение, в sys.dm_os_memory виртуалочка? у нас тоже было LOW, когда виртуалка отгребала серверную память. накажите системиста, выдайте серверной учетке LOCK PAGES IN MEMORYУгу, это не "нехватка памяти", а ненужная борьба за физическую память между приложениями через менеджер виртуальной памяти. Нужно просто правильно настроить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 16:42 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
alexeyvgYasha123пропущено... виртуалочка? у нас тоже было LOW, когда виртуалка отгребала серверную память. накажите системиста, выдайте серверной учетке LOCK PAGES IN MEMORYУгу, это не "нехватка памяти", а ненужная борьба за физическую память между приложениями через менеджер виртуальной памяти. Нужно просто правильно настроить. Коллеги, спасибо за подсказки. Что меня до сих пор не успокаивает, это то, что проблему решили перезагрузкой Агента SQL Server. Как такое может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 18:22 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
BelkinЧто меня до сих пор не успокаивает, это то, что проблему решили перезагрузкой Агента SQL Server. Как такое может быть?Возможно, он что то запускал, потребляющее память, и это "что то" зависло. Какой нибудь DTS пакет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 20:32 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
Belkinalexeyvgпропущено... Угу, это не "нехватка памяти", а ненужная борьба за физическую память между приложениями через менеджер виртуальной памяти. Нужно просто правильно настроить. Коллеги, спасибо за подсказки. Что меня до сих пор не успокаивает, это то, что проблему решили перезагрузкой Агента SQL Server. Как такое может быть?Чтобы понять как такое может быть нужно сначала выяснить в чем реально была проблема, а вы пока что далеки от этого потому что у вас "Проблема была с памятью!". Вы посмотрели хоть на что-нибудь еще кроме sys.dm_os_memory? Cpu, ожидания, блокировки, нагрузку на диски... ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2019, 22:29 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
BelkinПроблема была с памятью! Если на недельку запустить профилер по Degree of Parallelism с фильтром по "Integer Data", например, в гигабайт, то, возможно, узнаете много интересного о потребителях памяти и почему помог перезапуск SQL Agent. А может, и не узнаете... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2019, 09:58 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
tunknownBelkinПроблема была с памятью! Если на недельку запустить профилер по Degree of Parallelism с фильтром по "Integer Data", например, в гигабайт, то, возможно, узнаете много интересного о потребителях памяти и почему помог перезапуск SQL Agent. А может, и не узнаете... ага, тогда и гадать не надо будет, кто же пожрал ресурсы сервера: тот самый профайлер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2019, 10:30 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
Yasha123ага, тогда и гадать не надо будет, кто же пожрал ресурсы сервера: тот самый профайлерВы предполагаете, что у автора так много запросов на гигибайт, что профилер положит сервер? Ну, может быть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2019, 17:19 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за подсказки! Будем пробовать. Но дело в том, что у меня не так много прав, а к виртуалке нет вообще. Но, как обычно, к сожалению, проблемой занимаются разработчики, а не админы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2019, 18:57 |
|
||
|
Память используемая сессией
|
|||
|---|---|---|---|
|
#18+
BelkinВсем спасибо за подсказки! Будем пробовать. Но дело в том, что у меня не так много прав, а к виртуалке нет вообще. Но, как обычно, к сожалению, проблемой занимаются разработчики, а не админы...Это же чисто админские вопросы. Разработчик без прав пишет код, и не лазит в sys.dm_os_buffer_descriptors. А DBA решает проблемы с сервером. "как обычно" - это всё слова, никто не заставит разработчика без прав ставить винды и настраивать маршрутизатор, попутно ругаясь с провайдером. Нет прав - нет администрирования. Нужно просто сказать, что проблема решается такой то галочкой в настройках, но вы эту галочку крякать не имеете права, ибо на это есть специально уполномоченные Компанией сотрудники. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2019, 19:08 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39862726&tid=1687252]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 411ms |

| 0 / 0 |
