Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Память Maximum Server < sum(Workspace) ? / 12 сообщений из 12, страница 1 из 1
11.02.2019, 17:27
    #39772421
tunknown
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Память Maximum Server < sum(Workspace) ?
Что происходит, когда приходит несколько запросов, требующих в сумме workspace memory больше, чем дано серверу? Превышающие доступную память ждут, не накладывая блокировки на данные?
BOLDegree of Parallelism (Integer Data)
The amount of "workspace memory" in kilobytes that the query has been granted to perform operations involving hashing, sorts or create index operations. The memory will be acquired during execution as needed.
...
Рейтинг: 0 / 0
11.02.2019, 17:42
    #39772435
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Память Maximum Server < sum(Workspace) ?
tunknown,

Ну как я это понимаю:
Память выделяется исходя из "текущей"(ну практически) доступной.
Если запрос начал и памяти не хватило - в tempdb, если не хватает то будет висеть ожидание RESOURCE_SEMAPHORE. До выделения ресурсов ничего не блокирует. Но может я и не прав
...
Рейтинг: 0 / 0
11.02.2019, 17:54
    #39772445
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Память Maximum Server < sum(Workspace) ?
tunknown,

какие уж блокировки, если запрос не может получить затребованную память. Насколько я видел, картина такая: жирные запросы забирают грантами большую часть память, а мелкие запросы "толкаются локтями" и ждут очереди. При этом производительность для многих пользователей значительно снижается.
...
Рейтинг: 0 / 0
11.02.2019, 18:37
    #39772479
tunknown
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Память Maximum Server < sum(Workspace) ?
TaPaKПамять выделяется исходя из "текущей"(ну практически) доступной.
Если запрос начал и памяти не хватило - в tempdb, если не хватает то будет висеть ожидание RESOURCE_SEMAPHORE. До выделения ресурсов ничего не блокирует. Но может я и не прав
wait_typewaiting_tasks_countwait_time_msmax_wait_time_mssignal_wait_time_msRESOURCE_SEMAPHORE0000SOSHOST_SEMAPHORE0000CLR_SEMAPHORE0000RESOURCE_SEMAPHORE_MUTEX0000RESOURCE_SEMAPHORE_QUERY_COMPILE0000DISPATCHER_QUEUE_SEMAPHORE1748749223652059261149131DISPATCHER_PRIORITY_QUEUE_SEMAPHORE0000PWAIT_RESOURCE_SEMAPHORE_FT_PARALLEL_QUERY_SYNC0000
Видно ли здесь что? К сожалению, сервер был перезагружен. Та ситуация пока не повторялась.

Владислав Колосовкакие уж блокировки, если запрос не может получить затребованную память. Насколько я видел, картина такая: жирные запросы забирают грантами большую часть память, а мелкие запросы "толкаются локтями" и ждут очереди. При этом производительность для многих пользователей значительно снижается. Так и есть.
...
Рейтинг: 0 / 0
12.02.2019, 03:55
    #39772566
Mind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Память Maximum Server < sum(Workspace) ?
tunknown,

Вы увидите большие ожидания RESOURCE_SEMAPHORE, это ни с чем не спутаешь. Ну и как уже сказали, блокировок данных не будет, процессы будут ждать выделения памяти перед тем как начнется выполнение. Быстро будут выполнятся только запросы попадающие в Small Resource Semaphore (стоимость меньше 3 и требующие памяти меньше 5МБ).

Если вам нужно увидеть что в общем происходит с памятью в настоящий момент, то попробуйте приаттаченный запрос. В вашем случае будет примерно следующее:
"Memory Grants Pending" > 0
"Granted Workspace Memory" будет приближаться к "Maximum Workspace Memory"
При этом, если сервер очень сильно переоценил количество строк то "Used Workspace Memory" может быть ощутимо меньше чем "Granted Workspace Memory". Но все равно процессы будут ждать, потому что уже выделенная память не вернется в пул пока не завершится запрос.
...
Рейтинг: 0 / 0
12.02.2019, 09:31
    #39772612
tunknown
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Память Maximum Server < sum(Workspace) ?
MindЕсли вам нужно увидеть что в общем происходит с памятью в настоящий момент, то попробуйте приаттаченный запрос.Благодарю, замечательный запрос.
...
Рейтинг: 0 / 0
12.02.2019, 09:42
    #39772616
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Память Maximum Server < sum(Workspace) ?
tunknown,

кстати, если вы можете выделить запросы которые убивают вашу память, то вполне решение через resource governor выделить под них пул и пусть сами толкаются
...
Рейтинг: 0 / 0
12.02.2019, 17:13
    #39772959
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Память Maximum Server < sum(Workspace) ?
tunknown,

настройте resource governor, если гранты намного больше фактического использования и нет возможности заниматься микротюнингом запросов.
...
Рейтинг: 0 / 0
13.02.2019, 10:10
    #39773187
tunknown
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Память Maximum Server < sum(Workspace) ?
TaPaKкстати, если вы можете выделить запросы которые убивают вашу память, то вполне решение через resource governor выделить под них пул и пусть сами толкаютсяПоверхностно почитал на эту тему. Не уверен, что смогу. OLTP приложение гонит малотребующие и многотребующие запросы в одном действии. Эти действия выполняют почти все пользователи. Пока не ясно как разделить.

Кстати, что будет на Express, если запрос на Standard требует, например, 4.5ГБ памяти? Существуют ли запросы(без хинтов), которые Express не может выполнить, а Standard может, пусть и с другим автоматическим планом от оптимизатора.
...
Рейтинг: 0 / 0
13.02.2019, 10:44
    #39773200
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Память Maximum Server < sum(Workspace) ?
tunknown,

oltp и 4,5Гб запросы :)

авторExpress не может выполнить, а Standard может, пусть и с другим автоматическим планом от оптимизатора.
почему не сможет? для всего остального есть mastercardtempdb
...
Рейтинг: 0 / 0
13.02.2019, 11:26
    #39773235
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Память Maximum Server < sum(Workspace) ?
tunknown,

требует и потребляет - две большие разницы.
...
Рейтинг: 0 / 0
13.02.2019, 21:05
    #39773598
Mind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Память Maximum Server < sum(Workspace) ?
tunknownКстати, что будет на Express, если запрос на Standard требует, например, 4.5ГБ памяти? Существуют ли запросы(без хинтов), которые Express не может выполнить, а Standard может, пусть и с другим автоматическим планом от оптимизатора.
sys.dm_exec_query_memory_grants required_memory_kb - Minimum memory required to run this query in kilobytes. requested_memory_kb is the same or larger than this amount. - Обычно это пара мегабайт, то без чего запрос вообще не сможет выполниться, все что не влезет просто будет "сливаться" в tempdb.

requested_memory_kb - Total requested amount of memory in kilobytes.

granted_memory_kb - Total amount of memory actually granted in kilobytes. Can be NULL if the memory is not granted yet. For a typical situation, this value should be the same as requested_memory_kb.

used_memory_kb - Physical memory used at this moment in kilobytes.
По дефолту, requested_memory_kb не может быть больше 25% от Maximum Workspace Memory. Чем меньше памяти на сервере тем меньше будет запрошено. При таких настройках на сервере не может одновременно выполнятся больше 4-х тяжелых запросов, на практике это обычно 3, остальные уже не влазят. Поменяйте в RG для дефолтного пула [Memory grant %] с 25% на 10% и у вас будет выполнятся одновременно 9-10 таких запросов и можно ничего не делить на разные пулы. Естественно если такие запросы реально потребляют столько памяти (used_memory_kb), то выполнятся они будут медленнее. Зато все остальное не встянет колом. Ну и ждите повышенной нагрузки на tempdb.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Память Maximum Server < sum(Workspace) ? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]