Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Значение PLE  [new]
maxraf
Member

Откуда:
Сообщений: 31
Всем привет.

Исходные данные сервера:

MS SQL 2016 Std
ОЗУ 48 Гб
6 x SSD 480 Гб RAID 10

Базы:

1. 500 Гб
2. 50 Гб
3. 2 Гб

Проблема собственно в том, что менее чем за сутки SQL "съедает" всю память.

Начал читать интернеты и нашел статью http://www.sqlservercentral.com/articles/Performance Tuning/analyzingmemoryrequirementsforsqlserver/2498/ в частности там говорится о PLE. Начал читать разные источники по PLE, а там упоминается, что среднее значение должно быть не менее 300. У меня же такие значения:

SELECT * FROM sysperfinfo WHERE counter_name LIKE 'Page life expectancy%'


Получается, что у меня страницы в буфере хранятся 20360 сек! По-моему это не просто много, а офигеть как много, поэтому вся память съедается.

Прошу вас прокомментировать мою ситуацию. Спасибо.

К сообщению приложен файл. Размер - 9Kb
13 авг 18, 05:41    [21639857]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
aleks222
Member

Откуда:
Сообщений: 929
maxraf
Проблема собственно в том, что менее чем за сутки SQL "съедает" всю память.


Тебе нафига свободная память на сервере?
13 авг 18, 06:14    [21639861]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
maxraf
Member

Откуда:
Сообщений: 31
aleks222
maxraf
Проблема собственно в том, что менее чем за сутки SQL "съедает" всю память.


Тебе нафига свободная память на сервере?


Я тоже об этом задумался, когда прочитал о том, что он забирает всю память для кэширования всего чего можно. Но в таком случае как понять, что все нормально? Опрашивать сотрудников?
13 авг 18, 06:23    [21639862]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1467
maxraf,

Разве ваши значения меньше, указанного в источнике лимита? ;)

В целом, если и судить об эффективности использования памяти, то правильнее, IMHO, будет ориентироваться на понятие "hit ratio" для кэшей - страничного (buffer) и библиотечного (plan).

Кроме того, недостаток памяти - это не единственное, что может вызвать проблемы производительности.

В целом, плясать нужно - "от печки", а вам - от решаемой задачи. Вы циферки абстракто меряете, исключительно в целях получения их абсолютных значений? Или есть какие-то проблемы в работе сервера, которые вы пытаетесь устранить?
13 авг 18, 08:51    [21639929]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
архивариус
Member

Откуда:
Сообщений: 150
maxraf
Проблема собственно в том, что менее чем за сутки SQL "съедает" всю память.

он съедает сколько ему выделили, выдели меньше (только зачем?)
13 авг 18, 08:59    [21639932]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7687
архивариус,

дык рабочий стол только 200-300 мб съедает. Пять столов - вот и гиг памяти. Плюс какой-то софт по расписанию должен работать, обновления ставятся. Чтобы локтями не толкаться.
13 авг 18, 11:02    [21640045]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5235
maxraf
Получается, что у меня страницы в буфере хранятся 20360 сек! По-моему это не просто много, а офигеть как много, поэтому вся память съедается.

Прошу вас прокомментировать мою ситуацию. Спасибо.


Во-первых, этот счетчик имеет актуальность на момент просмотра, т.е. изменится в следующую секунду
Вывод: надо смотреть на тренд

Во-вторых, если вы заставите его очищать кэш данных, то пришедшие запросы встанут в очередь ожидания пока сиквел будет дергать диски и поднимать данные в память.
Вывод: вы "тормознете" сервер и клиентов ради "экономии" памяти.

покажите результат
select * from sys.configurations where name like '%server memory%'
go
select * from sys.dm_os_performance_counters where counter_name like 't%server memory%'
go
select * from sys.dm_os_sys_memory
go
13 авг 18, 11:21    [21640072]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
maxraf
Member

Откуда:
Сообщений: 31
Запустил счетчики производительности в течение рабочего дня.

Вот такие результаты (нагрузки в пике):

Гигабитный интерфейс 746 Мб/с

Сам SQL 42,4 Гб из выделенных 46.

Процессор 22,8%

По дисковой подсистеме не могу. График показывает в один момент пик был более 90%, а в цифрах максимум 18,635 - это что за показатель? Приложил скриншот.

В целом, что скажете по производительности?

К сообщению приложен файл. Размер - 143Kb
14 авг 18, 10:07    [21641410]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
maxraf
Member

Откуда:
Сообщений: 31
komrad
maxraf
Получается, что у меня страницы в буфере хранятся 20360 сек! По-моему это не просто много, а офигеть как много, поэтому вся память съедается.

Прошу вас прокомментировать мою ситуацию. Спасибо.


Во-первых, этот счетчик имеет актуальность на момент просмотра, т.е. изменится в следующую секунду
Вывод: надо смотреть на тренд

Во-вторых, если вы заставите его очищать кэш данных, то пришедшие запросы встанут в очередь ожидания пока сиквел будет дергать диски и поднимать данные в память.
Вывод: вы "тормознете" сервер и клиентов ради "экономии" памяти.

покажите результат
select * from sys.configurations where name like '%server memory%'
go
select * from sys.dm_os_performance_counters where counter_name like 't%server memory%'
go
select * from sys.dm_os_sys_memory
go


К сообщению приложен файл. Размер - 34Kb
14 авг 18, 10:10    [21641413]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
maxraf
Member

Откуда:
Сообщений: 31
Щукина Анна
maxraf,

Разве ваши значения меньше, указанного в источнике лимита? ;)

В целом, если и судить об эффективности использования памяти, то правильнее, IMHO, будет ориентироваться на понятие "hit ratio" для кэшей - страничного (buffer) и библиотечного (plan).

Кроме того, недостаток памяти - это не единственное, что может вызвать проблемы производительности.

В целом, плясать нужно - "от печки", а вам - от решаемой задачи. Вы циферки абстракто меряете, исключительно в целях получения их абсолютных значений? Или есть какие-то проблемы в работе сервера, которые вы пытаетесь устранить?


В целом проблем нет, по крайней мере никто не жалуется. Но для своего спокойствия и спокойствия компании хочу убедиться, что все в порядке.
14 авг 18, 10:14    [21641416]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31339
maxraf
В целом проблем нет, по крайней мере никто не жалуется. Но для своего спокойствия и спокойствия компании хочу убедиться, что все в порядке.
Если нет интенсивного IO с файлом подкачки, то ничего делать не надо. Посмотреть это можно в ресурс-мониторе.

Если есть, то нужно ограничить доступную память для сиквела так, что бы оставить её для других приложений. А сиквел уже сам определит, какие (редко используемые) данные можно удалить из кэша.
14 авг 18, 10:29    [21641433]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5235
maxraf,

ну, в зависимости от того, как долго работает сиквел (дата создания tempdb, к примеру), памяти ему достаточно и он её не до упора взял (46ГБ на кэш данных)

кстати, у вас всего 1.3ГБ свободно - могут быть проблемы со свободной памятью на хосте и, в случае отсутствия права lock pages in memory, винда может скидывать память сиквела в файл подкачки

на сервере кроме сиквела еще что-нибудь работает? например, ssis, ssrs, ssas или какая-нибудь отдельная софтинка?
14 авг 18, 11:16    [21641516]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7687
maxraf,

если я правильно помню рекомендации, то среднее значение дисковой очереди не должно превышать 2. На графике видны постоянные пики пропускной способности. Косвенно это говорит о недостаточном объеме буферной памяти для текущих процессов. На "хорошем" графике "просадки" обычно коррелируют с работой механизма отложенной записи Lazy Writer, сохранению контрольных точек при создании резервных копий и тому подобное.
14 авг 18, 12:14    [21641663]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5235
Владислав Колосов
На графике видны постоянные пики пропускной способности.

на его графике показано среднее от общего
имеет смысл смотреть по дискам сиквела, а не вообще по всему что есть
14 авг 18, 12:19    [21641676]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Владислав Колосов,

мне кажется, что "не должно превышать 2 " это фантастика ну или никто не работает :)
А так выяснять болен ли пациент, если он ни на что не жалуется это потерянное время. Лучше бекапами займитесь
14 авг 18, 12:22    [21641686]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7687
TaPaK,

да вот не знаю как, но у нас очередь меньше единицы в среднем. Хотя несколько сотен пользователей плюс веб-сервисы. Прыгает изредка до 40, но при массовых расчётах.
14 авг 18, 12:30    [21641703]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Владислав Колосов
TaPaK,

да вот не знаю как, но у нас очередь меньше единицы в среднем. Хотя несколько сотен пользователей плюс веб-сервисы. Прыгает изредка до 40, но при массовых расчётах.

Тут не суть того что вот "выше 2х значить плохо". У меня только "массовые расчёты", остальную нагрузку я не учитываю, и "два" это вообще не вариант(наверняка обороджуванием можно сильно приблизить к этому) :)
14 авг 18, 12:35    [21641713]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
архивариус
Member

Откуда:
Сообщений: 150
Владислав Колосов
maxraf,если я правильно помню рекомендации, то среднее значение дисковой очереди не должно превышать 2.
imho, это в расчете на шпиндель HDD, если в RAID N дисков = 2*N, для SSD неактуально
14 авг 18, 14:01    [21641857]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
maxraf
Member

Откуда:
Сообщений: 31
komrad
maxraf,

ну, в зависимости от того, как долго работает сиквел (дата создания tempdb, к примеру), памяти ему достаточно и он её не до упора взял (46ГБ на кэш данных)

кстати, у вас всего 1.3ГБ свободно - могут быть проблемы со свободной памятью на хосте и, в случае отсутствия права lock pages in memory, винда может скидывать память сиквела в файл подкачки

на сервере кроме сиквела еще что-нибудь работает? например, ssis, ssrs, ssas или какая-нибудь отдельная софтинка?


Из стороннего софта rphost и Касперский, больше ничего.
15 авг 18, 01:58    [21642485]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
aleks222
Member

Откуда:
Сообщений: 929
maxraf
Из стороннего софта rphost и Касперский, больше ничего.


Расходимся господа.
Медицина тут бессильна.
15 авг 18, 06:34    [21642504]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2326
У Гладченко была отличная статья, кто-то ее про#$@л.
Ладно хоть скрипт остался... может в чем-то поможет.

+ Быстрый тест проблем с памятью
-- Быстрый тест проблем с памятью
-- По мотивам: http://bit.ly/LkT05M
WITH RingBufferXML
AS(SELECT CAST(Record AS XML) AS RBR FROM sys .dm_os_ring_buffers
   WHERE ring_buffer_type = 'RING_BUFFER_RESOURCE_MONITOR'
  )
SELECT DISTINCT 'Зафиксированы проблемы' =
          CASE
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]','tinyint')  = 0 AND
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]','tinyint')   = 2 
                    THEN 'Недостаточно физической памяти для системы'
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]','tinyint')  = 0 AND 
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]','tinyint')   = 4 
                    THEN 'Недостаточно виртуальной памяти для системы' 
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]', 'tinyint') = 2 AND 
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]','tinyint')   = 0 
                    THEN'Недостаточно физической памяти для запросов'
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]', 'tinyint') = 4 AND 
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]', 'tinyint')  = 4
                    THEN 'Недостаточно виртуальной памяти для запросов и системы'
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]','tinyint')  = 2 AND 
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]','tinyint')   = 4 
                    THEN 'Недостаточно виртуальной памяти для системы и физической для запросов'
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]', 'tinyint') = 2 AND 
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]', 'tinyint')  = 2 
                    THEN 'Недостаточно физической памяти для системы и запросов'
         END
FROM        RingBufferXML
CROSS APPLY RingBufferXML.RBR.nodes ('Record') Record (XMLRecord)
WHERE       XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]','tinyint') IN (0,2,4) AND
            XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]' ,'tinyint') IN (0,2,4) AND
            XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]','tinyint') +
            XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]' ,'tinyint') > 0
15 авг 18, 09:29    [21642581]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2326
ShIgor,

а.. вот нашлась

на технете ссылки битые
15 авг 18, 09:32    [21642582]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5235
maxraf
komrad
maxraf,

ну, в зависимости от того, как долго работает сиквел (дата создания tempdb, к примеру), памяти ему достаточно и он её не до упора взял (46ГБ на кэш данных)

кстати, у вас всего 1.3ГБ свободно - могут быть проблемы со свободной памятью на хосте и, в случае отсутствия права lock pages in memory, винда может скидывать память сиквела в файл подкачки

на сервере кроме сиквела еще что-нибудь работает? например, ssis, ssrs, ssas или какая-нибудь отдельная софтинка?


Из стороннего софта rphost и Касперский, больше ничего.


другими словами - "только 1С и антивирус"
у вас на одной лошади три наездника - она конечно пойдет, но требовать/ожидать от нее производительности не стоит

погуглил, что такое rphost - одна из первых ссылок :
https://flumi.ru/articles/show/rphost_zanimaiet_pamiat_i_ghruzit_protsiessor
15 авг 18, 10:48    [21642644]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
обсуждение не о чём. Sql заберёт столько памяти сколько ему разрешили, доступна вся - всю и заберёт. И ещё и нихрена не отдаст просто так.
15 авг 18, 10:57    [21642657]     Ответить | Цитировать Сообщить модератору
 Re: Значение PLE  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2394
ShIgor
Ладно хоть скрипт остался... может в чем-то поможет.

"Недостаточно физической памяти для запросов"
это он про оперативку, или про место на хардах?
15 авг 18, 12:28    [21642840]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить