Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL Server не использует свободную память  [new]
Centraloff
Member

Откуда: Екатеринбург
Сообщений: 138
Добрый день

имеется Microsoft SQL Server 2008 R2 (SP1) - 10.50.2550.0 (X64) Jun 11 2012 16:41:53 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)

Windows server Standard 2008R2 SP1

на сервере 30Гб ОЗУ, свободно ~9Гб процесс sql использует 6-7Гб, при этом Cache Hits иногда опускается ниже 99%, размер основной рабочей базы 60Гб

Target Server Memory (MB) 14745.94 NULL
Maximum Workspace Memory (MB) 9861.91 0.67
Granted Workspace Memory (MB) 0.00 0.00
Used Workspace Memory (MB) 0.00 0.00
Reserved Server Memory (MB) 0.00 0.00
Total Server Memory (MB) 5914.90 0.40
Database Cache Memory (MB) 2392.43 0.40
Free Memory (MB) 37.11 0.01
Stolen Server Memory (MB) 3485.36 0.59
Used Workspace Memory (MB) 0.00 0.00
Plan Cache (MB) 3224.82 0.93
SQL Plans (MB) 3099.97 0.96
Object Plans (MB) 93.29 0.03
Bound Trees (MB) 31.43 0.01
Extended Stored Procedures (MB) 0.07 0.00
Temporary Tables & Table Variables (MB) 0.06 0.00


этот запрос показывает
Недостаточно физической памяти для запросов
Недостаточно физической памяти для системы

maximum server memory выставлено 16Гб

Как заставить SQL Server взять недостающую ему память?
15 май 13, 10:56    [14297439]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server не использует свободную память  [new]
Glory
Member

Откуда:
Сообщений: 104751
Target Server Memory (MB) утверждает, что используеится 14745.94Мб, т.е. 14Гб, а не "процесс sql использует 6-7Гб"
15 май 13, 10:59    [14297464]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server не использует свободную память  [new]
Centraloff
Member

Откуда: Екатеринбург
Сообщений: 138
Glory,

тем не менее висит свободно 9Гб памяти, при 60Гб базе и порядка 200 пользователей, и запрос ругается на недостаток памяти
15 май 13, 11:01    [14297490]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server не использует свободную память  [new]
Glory
Member

Откуда:
Сообщений: 104751
Centraloff
тем не менее висит свободно 9Гб памяти,

И поэтому mssql должен брать больше, чем ему разрешено в maximum server memory ?
15 май 13, 11:04    [14297510]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server не использует свободную память  [new]
Centraloff
Member

Откуда: Екатеринбург
Сообщений: 138
Glory,

Ну если на то пошло то разрешено ему 16Гб, но он и их даже не занимает
15 май 13, 11:59    [14298008]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server не использует свободную память  [new]
Glory
Member

Откуда:
Сообщений: 104751
Centraloff
Ну если на то пошло то разрешено ему 16Гб, но он и их даже не занимает

По-вашем непонятно откуда взятым данным "процесс sql использует 6-7Гб"
Так что я скорее поверю, что вы ошибаетесь, чем сервер
15 май 13, 12:13    [14298149]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server не использует свободную память  [new]
komrad
Member

Откуда:
Сообщений: 5760
Centraloff
Glory,

Ну если на то пошло то разрешено ему 16Гб, но он и их даже не занимает



покажите плз результат этого:
14269761
15 май 13, 12:39    [14298365]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server не использует свободную память  [new]
Centraloff
Member

Откуда: Екатеринбург
Сообщений: 138
komrad,
Добавил Maximum size of server memory до 22Гб, особо ничего не изменился
+

*** [ Host Info ] *** **************************************************
Hostname HP-AIS
SQL server name HP-AIS
Is Clustered NO
Cluster Name not clustered
Current Cluster Node not clustered
Physical Memory (MB) 30710
CPUs, Total 8
CPUs, Physical 1
CPUs per socket 8
OS uptime (days hh:mm:ss) 16 days 16:23:10
*** [ SQL Server Info ] *** **************************************************
SQL Server installation date 18 Apr 2011
Product Name Microsoft SQL Server 2008 R2 (SP1)
Product Version 10.50.2550.0
Product Level SP1
SQL Server Edition Standard Edition (64-bit)
SQL Server Collation Cyrillic_General_CI_AS
Start Time (Local) 2013-04-28 23:16:04.647
SQL uptime (days hh:mm:ss) 16 days 16:23:16
TCP Port Number NULL
Server Authentication Windows + SQL
Authentication Scheme NTLM
*** [ Memory ] *** **************************************************
Current SQL Memory (MB) 6844
Target SQL Memory (MB) 14272
Minimum size of server memory (MB) 0
Maximum size of server memory (MB) 22528
Page Life Expectancy (min) 693,00
Buffer Cache Size (MB) 3285.44
Procedure Cache Size (MB) 2958
15 май 13, 13:43    [14298989]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server не использует свободную память  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
А вообще, зафиксированы тормоза? Или что бы цифирьки глаз радовали ?
15 май 13, 13:49    [14299033]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server не использует свободную память  [new]
komrad
Member

Откуда:
Сообщений: 5760
Centraloff
komrad,
Добавил Maximum size of server memory до 22Гб, особо ничего не изменился

сейчас у вас используется из максимальных 22 только 6.8
возьмите селект * из большой таблицы в базе (гигов на 15-20)
и после него выполните снова этот скрипт - текущее потребление памяти сиквелом должно приблизиться к разрешенному максимуму
15 май 13, 13:51    [14299053]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server не использует свободную память  [new]
komrad
Member

Откуда:
Сообщений: 5760
Ozerov
А вообще, зафиксированы тормоза? Или что бы цифирьки глаз радовали ?


автора смущает результат работы скрипта

автор
этот запрос показывает
Недостаточно физической памяти для запросов
Недостаточно физической памяти для системы


я бы на его месте не волновался и решал бы реальные проблемы, по мере их поступления
15 май 13, 13:53    [14299071]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server не использует свободную память  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
komrad

автора смущает результат работы скрипта


Я вот к этому же..

komrad
я бы на его месте не волновался и решал бы реальные проблемы, по мере их поступления


Полностью согласен!
15 май 13, 13:55    [14299085]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server не использует свободную память  [new]
Centraloff
Member

Откуда: Екатеринбург
Сообщений: 138
komrad,

это база документооборота, поиск документов и открытие документов отрабатывают быстро, а вот запуск документов по различным маршрутам отрабатывают достаточно медленно. не могу пока определится виноват ли в этом sql или сервер приложений.
15 май 13, 13:59    [14299114]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server не использует свободную память  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
Centraloff
komrad,

это база документооборота, поиск документов и открытие документов отрабатывают быстро, а вот запуск документов по различным маршрутам отрабатывают достаточно медленно. не могу пока определится виноват ли в этом sql или сервер приложений.


Хм, Вы зашли совершенно не с того бока. Т.е. как гланды удалять через Ж...

Профайлер, на предмет долго играющих запросов.

А вообще какие критерии быстро и долго ?
15 май 13, 14:02    [14299129]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server не использует свободную память  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Centraloff,

У вас память используется под кэш запросов вместо данных. Из-за этого возможно Cache Hits и проседает. И кстати вы скоро упретесь в лимит. Для 16Гб лимит по кэшу запросов примерно 4.2ГБ, а у вас уже занято 3.2. А вот кэш данных у вас как раз таки простаивает.
"Недостаточно физической памяти для запросов" - это корявое определение, на самом деле это нехватка памяти процесса, а уж причин может быть много. В Вашем случае это скорее всего internal memory pressure для plan cache.

Могу предположить что у вас там куча ad-hoc запросов которые и жрут память. Запустите:

SELECT objtype AS [CacheType]
        , count_big(*) AS [Total Plans]
        , sum(cast(size_in_bytes as decimal(18,2)))/1024/1024 AS [Total MBs]
        , avg(usecounts) AS [Avg Use Count]
        , sum(cast((CASE WHEN usecounts = 1 THEN size_in_bytes ELSE 0 END) as decimal(18,2)))/1024/1024 AS [Total MBs - USE Count 1]
        , sum(CASE WHEN usecounts = 1 THEN 1 ELSE 0 END) AS [Total Plans - USE Count 1]
FROM sys.dm_exec_cached_plans
GROUP BY objtype
ORDER BY [Total MBs - USE Count 1] DESC
GO


И если это так, то включайте:

SP_CONFIGURE 'show advanced options',1
RECONFIGURE
GO
 
SP_CONFIGURE 'optimize for ad hoc workloads',1
RECONFIGURE
GO

хуже не будет.
15 май 13, 20:53    [14301968]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server не использует свободную память  [new]
Centraloff
Member

Откуда: Екатеринбург
Сообщений: 138
Mind,

Да, вы правы

CacheType Total Plans Total MBs Avg Use Count Total MBs - USE Count 1 Total Plans - USE Count 1
Adhoc 26011 2783.609375 45 1433.742187 9127
Prepared 807 67.500000 49 30.578125 219
Trigger 67 45.953125 691 13.640625 24
Proc 190 52.335937 1071 7.015625 33
Check 240 7.406250 57 1.296875 51
View 153 19.492187 904 0.000000 0
UsrTab 2 0.218750 6 0.000000 0


Спасибо, посмотрим что изменится сейчас
16 май 13, 15:42    [14306242]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить