Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Утечка памяти на Microsoft SQL 2008 R2

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Diabolik



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В общем имеется терминал-сервер на базе Windows Server 2008 R2 Enterprise и все работало отлично, пока не появилась жесткая необходимость перевести 1С 8.3 в формат SQL. Установил MS SQL 2008 R2 в самом дефалтном конфиге. На серваке 32Gb оперативки. Как только компьютер включаешь/перезагружаешь все что на нем задействовано съедает около 3.5Gb оперативки. Но уже через сутки (даже если никто не работал) съедается еще ~2Gb. В течении недели съедается вся свободная оперативка и комп приходится перезагружать, чтобы опять все началось с начала. Никакие особые настройки на сервере не делались, все по умолчанию. Может кто знает, решение? Наверняка, это какой-нибудь штатный косячок.

Всего записей: 4819 | Зарегистр. 02-10-2004 | Отправлено: 11:40 23-07-2015 | Исправлено: Diabolik, 23:30 23-07-2015
Arhimeddd

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скорей всего поглащает оперативу  SQL сервер, если ему жестко не выставить , посмотри в процессах

Всего записей: 8 | Зарегистр. 14-03-2014 | Отправлено: 09:47 24-07-2015
Diabolik



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arhimeddd
В процессах ничего такого нету, поэтому я все-таки грешу на криворукость разработчков, как вариант:
https://support.microsoft.com/ru-ru/kb/2778088

Всего записей: 4819 | Зарегистр. 02-10-2004 | Отправлено: 16:46 25-07-2015 | Исправлено: Diabolik, 16:46 25-07-2015
Andrey_Verkhoglyadov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Diabolik
Я бы рекомендовал все таки провести диагностику сервера и определить точно что именно течет. Может быть причина не только в SQL.
Можно начать с RamMAP и посмотреть несколько дней за памятью. Посмотрите вот эту статью Преодолевая ограничения Windows: выгружаемый и невыгружаемый пулы в частности ближе к концу статьи Отслеживание утечек пула это если если вы определите с помощью RamMAP что невыгружаемый пул системы слишком разросся.
Посмотрите еще A memory leak in nonpaged pool memory occurs in Windows Server 2008 R2

Всего записей: 2733 | Зарегистр. 06-02-2003 | Отправлено: 17:51 25-07-2015
Ice1374



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скулю нужно жёстко задать ограничение по потреблению памяти в настройках, как написал Arhimedddp.  В настройках по умолчанию - без ограничений.
Если раньше всё работало, то вряд ли утечка памяти вылезла после установки SQL. Ну размер non-paged пул можно в диспетчере задач глянуть конечно. А сколько отжирает SQL так и не написал...

Всего записей: 177 | Зарегистр. 02-10-2007 | Отправлено: 19:41 26-07-2015
tankistua

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну какая утечка - скуль сожрет все что есть, если есть необходимость в ограничении его аппетитов, то это настраивается

Всего записей: 9572 | Зарегистр. 15-01-2002 | Отправлено: 23:20 26-07-2015
Diabolik



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andrey_Verkhoglyadov
До установки SQL утечки небыло. А больше ничего не изменилось.

Всего записей: 4819 | Зарегистр. 02-10-2004 | Отправлено: 12:20 27-07-2015 | Исправлено: Diabolik, 12:22 27-07-2015
Paromshick



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да не утечка же это. В свойствах сервера выставляется объем памяти. Если его не ограничить он закеширует со временем вообще всё. Хоть всю базу и логи. Выставьте сколько надо.

----------
Скучно

Всего записей: 3019 | Зарегистр. 12-04-2013 | Отправлено: 14:41 27-07-2015
Diabolik



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Paromshick
Не много не так. Если ограничивать память, то она будет иметь некую заполняемость. И один прекрасный момент, на какую-нибудь стороннюю операцию это памяти банально не останется. Поэтому жестко ограничивать какой-то конкретный объем не вариант. Надо чтобы SQL брал памяти ровно столько, сколько требуется для решения текущих задач.

Всего записей: 4819 | Зарегистр. 02-10-2004 | Отправлено: 15:09 27-07-2015
Paromshick



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Diabolik
Та не. Ставишь ему 32 гига, он 32 и заберёт через некоторое время. Ну при  большой базе. И всего ему хватит, это же кэш, всегда можно скинуть. Естественно на это требуется чуть больше времени.
Естественно при таком конфиге он может зажать систему. Вообще прочтите что-нибудь по проектированию СУБД. А именно памяти. Там чистое быстродействие и его критичность.
Он может вообще без кэша жить, только диск будет изнасилован, и работать тормозно.
Посмотрите размер базы, прикиньте ее рост, и задайте %50, только и про систему не забыть. Например сколько отъедает терминальная сессия и сколько их. Плюс всякие обязательные процессы.
В общем, либо оставлять как есть, либо потужиться с калькулятором, и посмотреть.

----------
Скучно

Всего записей: 3019 | Зарегистр. 12-04-2013 | Отправлено: 15:24 27-07-2015
tankistua

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Diabolik
Ты только вдумайся в слова: это не утечка - это MS SQL сервер так работает. Он кеширует базу в оперативку. Если база большая - он всю память и сожрет. Ничего плохого в этом нет, но идеально, если оперативки больше, чем весит база, тогда все очень шустро
 
Но если у тебя проблемы с производительностью - я бы рекомендовал переключить режим работы сервера в приоритет программ.
 
В свойствах системы , дополнительные параметры, дополнительно, параметры, дополнительно. Выбираешь оптимизировать работу программ и перегружаешься.
 
З.Ы. будь готов, что упадет скорость работы с базой. Но для работы в терминале этот режим чуть ли не обязательно

Всего записей: 9572 | Зарегистр. 15-01-2002 | Отправлено: 16:15 27-07-2015 | Исправлено: tankistua, 16:16 27-07-2015
Diabolik



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Paromshick
На серваке 2 процессора и 32 Гб оперативки. Основная база 1С 8.3, весит 30 с лишним гигабайт. SQL и пришлось подымать только потому, что в обычный формат уже просто не влезало. Проще говоря база огромная + 2 бухгалтерии и 2 кадровых баз. Все это в терминале на 20 пользователей.
 
tankistua
Цитата:
Он кеширует базу в оперативку. Если база большая - он всю память и сожрет. Ничего плохого в этом нет, но идеально, если оперативки больше, чем весит база, тогда все очень шустро
Она при всем желании не влезет в оперативку.

Всего записей: 4819 | Зарегистр. 02-10-2004 | Отправлено: 12:35 29-07-2015 | Исправлено: Diabolik, 12:36 29-07-2015
Diabolik



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, так где все это смотреть? Где и как выставляется ограничения? Как проверить этот параметр:
Код:
select [Memory Used KB] = (pages_allocated_count * page_size_in_bytes)/1024 from sys.dm_os_memory_objects where type = 'MEMOBJ_RESOURCE'

Всего записей: 4819 | Зарегистр. 02-10-2004 | Отправлено: 13:46 20-08-2015 | Исправлено: Diabolik, 13:47 20-08-2015
dostali

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RAMMap в руки - сразу увидите сколько сожрал сиквел - AWE (даже если у вас х64 и не стоит галочка). Ограничить максимальное потребление памяти в настройках сиквела - скажем 12, отожрет 12+1 и больше жрать не будет. Можете зажать память - зависит от кол-во пользователей в терминалке. При 50 пользователях и 32 гигах памяти - сиквелу отдать 10. Остального хватит.  
Почитать тут https://interface31.ru/tech_it/2012/08/obsluzhivanie-baz-1s-v-ms-sql-server-chast-2.html

Всего записей: 67 | Зарегистр. 22-01-2003 | Отправлено: 13:50 25-10-2016
marlin2467

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Однозначно, скуль сожрет памяти столько, сколько есть в машине. Я довел количество оперативки до 320 Gb и он ее сожрал всю, хотя в тестовой базе размер был меньше. Скуль жрет на всякий случай. Так что реальный выход состоит только в ограничении его аппетитов.

Всего записей: 48 | Зарегистр. 29-03-2016 | Отправлено: 10:15 26-10-2016
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Утечка памяти на Microsoft SQL 2008 R2


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru