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

Откуда: Москва / Калуга
Сообщений: 33929
Блог
J3utajisi,

на форуме есть функциональность вставки картинок...
1 сен 11, 11:45    [11211110]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
J3utajisi
Member

Откуда:
Сообщений: 97
Почитал многии статьи и формумы, поигрался с настройками, вобщем после того как установил пределы min memory в 8192, sql переодически начал освобождать занимаемую буффером память. Два дня вот уже работает ровно, но и нагрузки в эти дни не было. Только в выходные смогу нагрузить сервер.

Но когда на сервере происходят массовые операции добавления - удаления - изменения данных производительность очень сильно падает.
Модификация данных(обычные, самые простые запросы на удаление, обновление, вставку) происходится приложением в 4 потока с синхронизацией.
Как только начинается эта загрузка пользователи начинают жаловаться.

Скоро на сервер накинут еще 32 гига оперативы, не знаю поможет это или нет...
1 сен 11, 11:50    [11211177]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
J3utajisi
Member

Откуда:
Сообщений: 97


К сообщению приложен файл. Размер - 24Kb
1 сен 11, 11:52    [11211199]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
invm
Member

Откуда: Москва
Сообщений: 9396
komrad
она нужна для того, чтобы винда в своп не выкидывала

http://msdn.microsoft.com/en-us/library/ms190730.aspx
The Windows policy Lock Pages in Memory option is disabled by default. This privilege must be enabled to configure Address Windowing Extensions (AWE). This policy determines which accounts can use a process to keep data in physical memory, preventing the system from paging the data to virtual memory on disk. On 32-bit operating systems, setting this privilege when not using AWE can significantly impair system performance. Locking pages in memory is not required on 64-bit operating systems.
1 сен 11, 11:57    [11211270]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
komrad
Member

Откуда:
Сообщений: 5249
invm
komrad
она нужна для того, чтобы винда в своп не выкидывала

http://msdn.microsoft.com/en-us/library/ms190730.aspx
The Windows policy Lock Pages in Memory option is disabled by default. This privilege must be enabled to configure Address Windowing Extensions (AWE). This policy determines which accounts can use a process to keep data in physical memory, preventing the system from paging the data to virtual memory on disk. On 32-bit operating systems, setting this privilege when not using AWE can significantly impair system performance. Locking pages in memory is not required on 64-bit operating systems.


спасибо
1 сен 11, 12:00    [11211299]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
желтый триггер
Guest
J3utajisi
Но когда на сервере происходят массовые операции добавления - удаления - изменения данных производительность очень сильно падает.


см.
- протоколирование
- обновление кучи индексов
- дебильные триггеры с курсорами
- длинные транзакции
- неадекватные задачам уровни изоляции

и как насчет проводить массовые операции в периоды минимальной активности пользователей?
1 сен 11, 12:01    [11211310]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33929
Блог
>>3. Иногда происходят операции массовой обработки данных, которые происходят по 5-10 минут, но почему от них зависает сервер?!

Я бы посмотрел в этот момент на блокировки.
И, как уже говорили, все-таки установил бы обновления.
1 сен 11, 12:06    [11211350]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
J3utajisi
Member

Откуда:
Сообщений: 97
желтый триггер
J3utajisi
Но когда на сервере происходят массовые операции добавления - удаления - изменения данных производительность очень сильно падает.


см.
- протоколирование
- обновление кучи индексов
- дебильные триггеры с курсорами
- длинные транзакции
- неадекватные задачам уровни изоляции


Сейчас этим и занимаюсь, удалил неиспользуемые индексы, перевожу триггеры на хранимые процедуры и по возможности делаю обработку массовой(есть много в циклах и курсорах).
От транзаций никуда не денешься и они практически во всех запросах...

желтый триггер
и как насчет проводить массовые операции в периоды минимальной активности пользователей

Эти операции инициируют пользователи, по возможности делаются в не рабочее время.

Мне нужно, чтобы все массовые операции выполнялись, но при этом обычный select мог выполнится в рамках 2 сек(требование руководства)...

Я в администрировании не совсем разбираюсь... Может там жесткий диск медленный или tempdb нужно вынести на отдельный жесткий, много чего начитался, а какой прирост это может дать не представляю... Вот и обратился за помощью. Может статистика какая поможет определить что не в порядке.
1 сен 11, 12:14    [11211420]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37050
Так может сначала выяснить, чего ожидают запросы, которые выполняются дольше отведенных для этого двух секунд?
1 сен 11, 12:16    [11211448]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
J3utajisi
Member

Откуда:
Сообщений: 97
Критик
>>3. Иногда происходят операции массовой обработки данных, которые происходят по 5-10 минут, но почему от них зависает сервер?!

Я бы посмотрел в этот момент на блокировки.
И, как уже говорили, все-таки установил бы обновления.


Каким инструментом лучше наблюдать за блокировками?

Обновления были установлены вчера вечером.
1 сен 11, 12:17    [11211454]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33929
Блог
А что выдаст это?
-- i/o-нагрузка на файлы
SELECT DB_NAME(saf.dbid) AS [База данных],
       saf.name AS [Логическое имя],
       vfs.BytesRead/1048576 AS [Прочитано (Мб)],
       vfs.BytesWritten/1048576 AS [Записано (Мб)],
       saf.filename AS [Путь к файлу]
  FROM master..sysaltfiles AS saf
  JOIN ::fn_virtualfilestats(NULL,NULL) AS vfs ON vfs.dbid = saf.dbid AND
                                                  vfs.fileid = saf.fileid AND
                                                  saf.dbid NOT IN (1,3,4)
  ORDER BY vfs.BytesRead/1048576 + BytesWritten/1048576 DESC

>>Мне нужно, чтобы все массовые операции выполнялись, но при этом обычный select мог выполнится в рамках 2 сек(требование руководства)...

Если бизнес-требования позволяют, рассмотрите возможность дабавки в select`ы подсказки nolock
1 сен 11, 12:19    [11211480]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33929
Блог
sp_lock показывает блокировки в тукущий момент

Или см столбец blocked (при "остановке работы")
select *
  from sys.sysprocesses where spid > 50 and spid <> @@spid and status <> 'sleeping'
  order by spid, ecid
1 сен 11, 12:21    [11211501]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
желтый триггер
Guest
J3utajisi
От транзаций никуда не денешься и они практически во всех запросах...

Мне нужно, чтобы все массовые операции выполнялись, но при этом обычный select мог выполнится в рамках 2 сек(требование


многие селекты вполне корректно делать с NOLOCK.
для строгих расчетов это не подойдет, для "обычных селектов" - самое то.

+покурите READ_COMMITTED_SNAPSHOT
1 сен 11, 12:22    [11211513]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
J3utajisi
Member

Откуда:
Сообщений: 97
Критик
А что выдаст это?
-- i/o-нагрузка на файлы
SELECT DB_NAME(saf.dbid) AS [База данных],
       saf.name AS [Логическое имя],
       vfs.BytesRead/1048576 AS [Прочитано (Мб)],
       vfs.BytesWritten/1048576 AS [Записано (Мб)],
       saf.filename AS [Путь к файлу]
  FROM master..sysaltfiles AS saf
  JOIN ::fn_virtualfilestats(NULL,NULL) AS vfs ON vfs.dbid = saf.dbid AND
                                                  vfs.fileid = saf.fileid AND
                                                  saf.dbid NOT IN (1,3,4)
  ORDER BY vfs.BytesRead/1048576 + BytesWritten/1048576 DESC
1 сен 11, 12:24    [11211527]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
J3utajisi
Member

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

К сообщению приложен файл. Размер - 59Kb
1 сен 11, 12:24    [11211532]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33929
Блог
J3utajisi,

Можно попробовать первую базу на картинке на более быстрый диск переместить.
Но с другой стороны у вас и так маленькие задержки дисковой подсистемы.
Так что (имхо), мониторьте блокировки(в момент "зависания"), изменяйте логику приложения.
1 сен 11, 12:30    [11211563]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
J3utajisi
Member

Откуда:
Сообщений: 97
Критик
J3utajisi,

Можно попробовать первую базу на картинке на более быстрый диск переместить.
Но с другой стороны у вас и так маленькие задержки дисковой подсистемы.
Так что (имхо), мониторьте блокировки(в момент "зависания"), изменяйте логику приложения.

Большое спасибо за советы! Я тоже думаю, что тут проблема с блокировками, потому что элементарное удаление строки идет 20 сек.
1 сен 11, 12:32    [11211577]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
J3utajisi
Member

Откуда:
Сообщений: 97
Еще такой момент, когда нагрузка спадает, производительность не востанавливается полностью, память забита и селекты выполняются в два раза дольше.
1 сен 11, 12:37    [11211616]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
желтый триггер
Guest
J3utajisi,

а структуру таблички по которой идут массовые удаления и все ее индексы можете привести?
или там вся база перелопачивается?
1 сен 11, 12:43    [11211661]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33929
Блог
А результат этого скрипта можете привести?
Нужно выполнять в проблемной базе.

-- Отсутствующие индексы, вызывающие издержки
SELECT TOP 10 
       [Total Cost] = ROUND(avg_total_user_cost * avg_user_impact * (user_seeks + user_scans),0),
       avg_user_impact,
       TableName = statement,
       [EqualityUsage] = equality_columns,
       [InequalityUsage] = inequality_columns,
       [Include Cloumns] = included_columns
  FROM sys.dm_db_missing_index_groups g 
  INNER JOIN sys.dm_db_missing_index_group_stats s ON s.group_handle = g.index_group_handle 
  INNER JOIN sys.dm_db_missing_index_details d ON d.index_handle = g.index_handle
  WHERE database_id = DB_ID()
  ORDER BY [Total Cost] DESC;
1 сен 11, 12:48    [11211697]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
ЕвгенийВ
Member

Откуда: Москва
Сообщений: 4950
J3utajisi,
Разнести файлы данных и дурнала транзакций по разным физическим дискам очень помогает, а у вас как я погляжу все на одном...
1 сен 11, 12:54    [11211761]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
Int23
Guest
>>Критик
Скажите, а откуда вы берёте запросы такие интересные, позволяющие выводить статистику по серверу? Не могли бы выложить их по больше. И если есть такая возможность то с описанием.
1 сен 11, 12:57    [11211789]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37050
Int23
>>Критик
Скажите, а откуда вы берёте запросы такие интересные, позволяющие выводить статистику по серверу? Не могли бы выложить их по больше. И если есть такая возможность то с описанием.
Все dmv описаны в BOL.
1 сен 11, 12:57    [11211795]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
komrad
Member

Откуда:
Сообщений: 5249
Int23
>>Критик
Скажите, а откуда вы берёте запросы такие интересные, позволяющие выводить статистику по серверу? Не могли бы выложить их по больше. И если есть такая возможность то с описанием.


у любого практикующего ДБА есть свой запасник скриптов
источники пополнения разные - самопис, форумы и т.п.
1 сен 11, 13:00    [11211813]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
invm
Member

Откуда: Москва
Сообщений: 9396
желтый триггер
многие селекты вполне корректно делать с NOLOCK.
для строгих расчетов это не подойдет, для "обычных селектов" - самое то.
А руководство и пользователи будут особенно рады периодическому появлению 601 ошибки.
1 сен 11, 13:01    [11211831]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить