Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Значение PLE / 25 сообщений из 28, страница 1 из 2
13.08.2018, 05:41
    #39686648
maxraf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
Всем привет.

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

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. У меня же такие значения:

Код: sql
1.
SELECT * FROM sysperfinfo WHERE counter_name LIKE 'Page life expectancy%'



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

Прошу вас прокомментировать мою ситуацию. Спасибо.
...
Рейтинг: 0 / 0
13.08.2018, 06:14
    #39686650
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
maxrafПроблема собственно в том, что менее чем за сутки SQL "съедает" всю память.

Тебе нафига свободная память на сервере?
...
Рейтинг: 0 / 0
13.08.2018, 06:23
    #39686651
maxraf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
aleks222maxrafПроблема собственно в том, что менее чем за сутки SQL "съедает" всю память.

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

Я тоже об этом задумался, когда прочитал о том, что он забирает всю память для кэширования всего чего можно. Но в таком случае как понять, что все нормально? Опрашивать сотрудников?
...
Рейтинг: 0 / 0
13.08.2018, 08:51
    #39686677
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
maxraf,

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

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

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

В целом, плясать нужно - "от печки", а вам - от решаемой задачи. Вы циферки абстракто меряете, исключительно в целях получения их абсолютных значений? Или есть какие-то проблемы в работе сервера, которые вы пытаетесь устранить?
...
Рейтинг: 0 / 0
13.08.2018, 08:59
    #39686679
архивариус
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
maxrafПроблема собственно в том, что менее чем за сутки SQL "съедает" всю память.

он съедает сколько ему выделили, выдели меньше (только зачем?)
...
Рейтинг: 0 / 0
13.08.2018, 11:02
    #39686729
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
архивариус,

дык рабочий стол только 200-300 мб съедает. Пять столов - вот и гиг памяти. Плюс какой-то софт по расписанию должен работать, обновления ставятся. Чтобы локтями не толкаться.
...
Рейтинг: 0 / 0
13.08.2018, 11:21
    #39686745
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
maxrafПолучается, что у меня страницы в буфере хранятся 20360 сек! По-моему это не просто много, а офигеть как много, поэтому вся память съедается.

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

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

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

покажите результат
Код: sql
1.
2.
3.
4.
5.
6.
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
...
Рейтинг: 0 / 0
14.08.2018, 10:07
    #39687286
maxraf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
Запустил счетчики производительности в течение рабочего дня.

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

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

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

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

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

В целом, что скажете по производительности?
...
Рейтинг: 0 / 0
14.08.2018, 10:10
    #39687288
maxraf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
komradmaxrafПолучается, что у меня страницы в буфере хранятся 20360 сек! По-моему это не просто много, а офигеть как много, поэтому вся память съедается.

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

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

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

покажите результат
Код: sql
1.
2.
3.
4.
5.
6.
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
...
Рейтинг: 0 / 0
14.08.2018, 10:14
    #39687291
maxraf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
Щукина Аннаmaxraf,

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

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

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

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

В целом проблем нет, по крайней мере никто не жалуется. Но для своего спокойствия и спокойствия компании хочу убедиться, что все в порядке.
...
Рейтинг: 0 / 0
14.08.2018, 10:29
    #39687300
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
maxrafВ целом проблем нет, по крайней мере никто не жалуется. Но для своего спокойствия и спокойствия компании хочу убедиться, что все в порядке.Если нет интенсивного IO с файлом подкачки, то ничего делать не надо. Посмотреть это можно в ресурс-мониторе.

Если есть, то нужно ограничить доступную память для сиквела так, что бы оставить её для других приложений. А сиквел уже сам определит, какие (редко используемые) данные можно удалить из кэша.
...
Рейтинг: 0 / 0
14.08.2018, 11:16
    #39687345
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
maxraf,

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

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

на сервере кроме сиквела еще что-нибудь работает? например, ssis, ssrs, ssas или какая-нибудь отдельная софтинка?
...
Рейтинг: 0 / 0
14.08.2018, 12:14
    #39687384
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
maxraf,

если я правильно помню рекомендации, то среднее значение дисковой очереди не должно превышать 2. На графике видны постоянные пики пропускной способности. Косвенно это говорит о недостаточном объеме буферной памяти для текущих процессов. На "хорошем" графике "просадки" обычно коррелируют с работой механизма отложенной записи Lazy Writer, сохранению контрольных точек при создании резервных копий и тому подобное.
...
Рейтинг: 0 / 0
14.08.2018, 12:19
    #39687389
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
Владислав Колосов На графике видны постоянные пики пропускной способности.
на его графике показано среднее от общего
имеет смысл смотреть по дискам сиквела, а не вообще по всему что есть
...
Рейтинг: 0 / 0
14.08.2018, 12:22
    #39687395
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
Владислав Колосов,

мне кажется, что "не должно превышать 2 " это фантастика ну или никто не работает :)
А так выяснять болен ли пациент, если он ни на что не жалуется это потерянное время. Лучше бекапами займитесь
...
Рейтинг: 0 / 0
14.08.2018, 12:30
    #39687406
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
TaPaK,

да вот не знаю как, но у нас очередь меньше единицы в среднем. Хотя несколько сотен пользователей плюс веб-сервисы. Прыгает изредка до 40, но при массовых расчётах.
...
Рейтинг: 0 / 0
14.08.2018, 12:35
    #39687413
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
Владислав КолосовTaPaK,

да вот не знаю как, но у нас очередь меньше единицы в среднем. Хотя несколько сотен пользователей плюс веб-сервисы. Прыгает изредка до 40, но при массовых расчётах.
Тут не суть того что вот "выше 2х значить плохо". У меня только "массовые расчёты", остальную нагрузку я не учитываю, и "два" это вообще не вариант(наверняка обороджуванием можно сильно приблизить к этому) :)
...
Рейтинг: 0 / 0
14.08.2018, 14:01
    #39687476
архивариус
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
Владислав Колосовmaxraf,если я правильно помню рекомендации, то среднее значение дисковой очереди не должно превышать 2. imho, это в расчете на шпиндель HDD, если в RAID N дисков = 2*N, для SSD неактуально
...
Рейтинг: 0 / 0
15.08.2018, 01:58
    #39687801
maxraf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
komradmaxraf,

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

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

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

Из стороннего софта rphost и Касперский, больше ничего.
...
Рейтинг: 0 / 0
15.08.2018, 06:34
    #39687813
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
maxrafИз стороннего софта rphost и Касперский, больше ничего.

Расходимся господа.
Медицина тут бессильна.
...
Рейтинг: 0 / 0
15.08.2018, 09:29
    #39687854
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
У Гладченко была отличная статья, кто-то ее про#$@л.
Ладно хоть скрипт остался... может в чем-то поможет.

Быстрый тест проблем с памятью
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
-- Быстрый тест проблем с памятью
-- По мотивам: 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

...
Рейтинг: 0 / 0
15.08.2018, 09:32
    #39687855
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
ShIgor,

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

на технете ссылки битые
...
Рейтинг: 0 / 0
15.08.2018, 10:48
    #39687906
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
maxrafkomradmaxraf,

ну, в зависимости от того, как долго работает сиквел (дата создания 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
...
Рейтинг: 0 / 0
15.08.2018, 10:57
    #39687916
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
обсуждение не о чём. Sql заберёт столько памяти сколько ему разрешили, доступна вся - всю и заберёт. И ещё и нихрена не отдаст просто так.
...
Рейтинг: 0 / 0
15.08.2018, 12:28
    #39688009
StarikNavy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение PLE
ShIgorЛадно хоть скрипт остался... может в чем-то поможет.
"Недостаточно физической памяти для запросов"
это он про оперативку, или про место на хардах?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Значение PLE / 25 сообщений из 28, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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