FB 2.5.0.26136 - ест память при ресторе

Администирование клиентской и серверной части InterBase, Firebird, Yaffil. Настройка файла конфигурации и т.п.

Модераторы: kdv, Alexey Kovyazin

Ответить
TAV
Сообщения: 48
Зарегистрирован: 31 май 2005, 08:18

FB 2.5.0.26136 - ест память при ресторе

Сообщение TAV » 22 ноя 2010, 12:26

Система: Windows 7 x64 Ultimate [Version 6.1.7600]
Память: 2 Гб
Сервер: FB 2.5.0.26136 x32 - SnapShot

База данных: бекап - 1.52 Гб

Команда восстановления:

Код: Выделить всё

gbak.exe -c -user SYSDBA -pass ****** -se localhost:service_mgr -p 4096 -rep -v -y C:\base\BAT\sudrst.log c:\base\db.fbk c:\base\db.fdb
При восстановлении сильно возрастает потребление физической памяти (скрин). В диспетчере задач не показывается процесса, который ее использует.
В общем восстановление съедает всю память. Пробовал на разных базах - одна примерно 2.3 Гб в развернутом состоянии другая 1 Гб. Ситуация повторяется.
Это нормальная ситуация? Пробовал восстановление в ХР SP3 - там такого не наблюдается, правда там в диспетчере показывается загрузка файла подкачки, а не загрузка физ. памяти как в семерке.
Пробовали и на FB сервере х32 и на х64 (в том числе на версии 2.5.0.26074). В х64 тоже наблюдается резкое возрастание использования памяти.

Изображение

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: FB 2.5.0.26136 - ест память при ресторе

Сообщение hvlad » 22 ноя 2010, 14:25

TAV писал(а):При восстановлении сильно возрастает потребление физической памяти (скрин). В диспетчере задач не показывается процесса, который ее использует.
Значит - файловый кеш
TAV писал(а):В общем восстановление съедает всю память.
И что ?

TAV
Сообщения: 48
Зарегистрирован: 31 май 2005, 08:18

Re: FB 2.5.0.26136 - ест память при ресторе

Сообщение TAV » 22 ноя 2010, 14:53

hvlad писал(а):
TAV писал(а):В общем восстановление съедает всю память.
И что ?
Да в общем то ничего.
Раньше такого не было, вопрос - это нормально - так и должно быть?

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: FB 2.5.0.26136 - ест память при ресторе

Сообщение hvlad » 22 ноя 2010, 16:17

TAV писал(а):
hvlad писал(а):
TAV писал(а):В общем восстановление съедает всю память.
И что ?
Да в общем то ничего.
Раньше такого не было, вопрос - это нормально - так и должно быть?
Ну так раньше и Win7 не было. Вопросы в туда :)
Или есть зависимость от версии FB на одной и той же Win7 ?

Есть память. Почему нельзя её использовать ?

TAV
Сообщения: 48
Зарегистрирован: 31 май 2005, 08:18

Re: FB 2.5.0.26136 - ест память при ресторе

Сообщение TAV » 22 ноя 2010, 21:34

hvlad писал(а):
TAV писал(а):
hvlad писал(а):
TAV писал(а):В общем восстановление съедает всю память.
И что ?
Да в общем то ничего.
Раньше такого не было, вопрос - это нормально - так и должно быть?
Ну так раньше и Win7 не было. Вопросы в туда :)
Или есть зависимость от версии FB на одной и той же Win7 ?

Есть память. Почему нельзя её использовать ?
Windows 7 уже есть - почти год как релиз вышел.
Да конечно, память использовать можно и нужно. Но есть подозрение, что объем съедаемой памяти при ресторе (бекап - проверил тоже ест, но чуть меньше), зависит от объема БД.
Откатился на версию FB 2.1.3 и попробовал рестор почти той же БД (старая версия, немного меньше по объему) - тоже отъедает память.
Сейчас не могу протестировать на БД большего (чем 2.3 Гб) объема.
Вопрос - версия сервера 2.1.3 либо 2.5.0 тестировалась в ОС семейства Windows 7-2008? Если тестировалась, то каковы там результаты теста бекапа и рестора.
Представьте, что будет с сервером Windows 2008 (ядро у него то же, что и у семерки) (на котором еще куча пользователей работает), если там начать бекапить(ресторить) БД объемом к примеру 10 Гб.
Опять же - это конечно надо проверять (где бы взять базу большого размера :) и кучку времени для тестов+нормальный сервер с памятью эдак гигов 8 ).

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: FB 2.5.0.26136 - ест память при ресторе

Сообщение kdv » 22 ноя 2010, 23:25

а кто ест-то память, прямо fbserver.exe? Вы если taskmanager показываете, так и посмотрите, КТО съел память. Если это не ФБ, значит кэш ОС.

Кстати, за комбинацию gbak -c -rep руки поотрубать. Читайте www.ibase.ru/devinfo/gbak.htm
есть подозрение, что объем съедаемой памяти при ресторе (бекап - проверил тоже ест, но чуть меньше), зависит от объема БД.
тем более нужно смотреть, что за процесс кушает память.
Представьте, что будет с сервером Windows 2008
не забывайте, что Win7 - не серверная ОС, а десктопная. И проводить такие параллели опрометчиво.

p.s. могу завтра проверить рестор на Win7 Prof 64bit.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: FB 2.5.0.26136 - ест память при ресторе

Сообщение hvlad » 22 ноя 2010, 23:33

TAV писал(а):Да конечно, память использовать можно и нужно. Но есть подозрение, что объем съедаемой памяти при ресторе (бекап - проверил тоже ест, но чуть меньше), зависит от объема БД.
Ну так есс-но. ФС кеширует файл БД - размер кеша зависит от размера файла. Что не так ?
TAV писал(а):Откатился на версию FB 2.1.3 и попробовал рестор почти той же БД (старая версия, немного меньше по объему) - тоже отъедает память.
Ну так и ?
TAV писал(а):Представьте, что будет с сервером Windows 2008 (ядро у него то же, что и у семерки) (на котором еще куча пользователей работает), если там начать бекапить(ресторить) БД объемом к примеру 10 Гб.
А что будет по-вашему ?

Ещё раз. Есть память. Одна версия ОС её не использует под кеш ФС. Другая - использует. Что тут не так ? Есть хоть одна реальная проблема из-за этого ?

PS Начиная с 2.1, можно попросить ФБ не использовать файловый кеш. Не советую это включать ради "проблемы рестора".
PPS Начиная с 2.5, ФБ умеет ограничить его использование операционной системой, если есть права.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: FB 2.5.0.26136 - ест память при ресторе

Сообщение kdv » 23 ноя 2010, 00:30

Вопрос - версия сервера 2.1.3 либо 2.5.0 тестировалась в ОС семейства Windows 7-2008? Если тестировалась, то каковы там результаты теста бекапа и рестора.
да уж год назад:
www.ibase.ru/devinfo/restorespeed.htm

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: FB 2.5.0.26136 - ест память при ресторе

Сообщение kdv » 23 ноя 2010, 19:39

прямо сейчас делаю тестовый рестор на Win 7 Prof 64, ФБ 2.5 релиз.
Да, картина именно такая - операционка (!) задействует кэш. Так что все штатно, нормально, и Firebird тут ни при чем.
Картинки сохранил, но выкладывать смысла не вижу. Разница только в том, что у меня 6 гиг памяти, и под базу в 3.5 гиг съелось как раз примерно столько RAM, а у Вас - физической памяти 2 гига, что в общем, для Windows 7 32бит является "стартовым" объемом, а для Win64 - маловато (64 имеет смысл с 4 гиг и выше).

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

Еще хочу добавить, что у Вас странный график загрузки процессора. У меня Phenom II X3 720, и ФБ при restore грузит одно ядро на 100%. Диск (один из) Hitachi 640 гиг SATA II. Бэкап лежал на диске Seagate (320 гиг SATA II), рестор шел на Hitachi.
А у Вас?

TAV
Сообщения: 48
Зарегистрирован: 31 май 2005, 08:18

Re: FB 2.5.0.26136 - ест память при ресторе

Сообщение TAV » 24 ноя 2010, 08:46

kdv писал(а):прямо сейчас делаю тестовый рестор на Win 7 Prof 64, ФБ 2.5 релиз.
Да, картина именно такая - операционка (!) задействует кэш. Так что все штатно, нормально, и Firebird тут ни при чем.
Картинки сохранил, но выкладывать смысла не вижу. Разница только в том, что у меня 6 гиг памяти, и под базу в 3.5 гиг съелось как раз примерно столько RAM, а у Вас - физической памяти 2 гига, что в общем, для Windows 7 32бит является "стартовым" объемом, а для Win64 - маловато (64 имеет смысл с 4 гиг и выше).
Да вы правы насчет малого объема памяти для Windows x64. Система ставилась с расчетом на то, что в будущем память будет добита до 3-4 Гб (но что-то как-то не срослось...).
Операционка ест память под кеш, все верно. Вопрос возник потому, что на моей конфигурации это приводило к замедлению работы операционной системы в целом при ресторе (ну мало у меня памяти - это понятно).
kdv писал(а): Собственно, сколько бы ни было памяти, винда ее использует, и в этом нет никакого криманала. Виртуальная (дисковая) память при этом не задействуется, так что дискового ввода-вывода это не создает. Надо будет операционке память - она заберет ее из кэша, не проблема.
Как раз таки в моем случае используется виртуальная память и происходит своп. Так как для БД объемом 2.4 Гб - оперативной памяти уже не хватило.
Вот я и провел параллель с сервером 2008 (ядро у них одно) (надо потестить на 2008, "надо Федя, надо" :) ) - если системе не будет хватать оперативки под рестор большого файла БД, она будет свопить, следовательно тормозить работу текущих юзеров. Соответственно уже надо настраивать параметр использования дискового кеша в FB (об этом ниже).
kdv писал(а): Еще хочу добавить, что у Вас странный график загрузки процессора. У меня Phenom II X3 720, и ФБ при restore грузит одно ядро на 100%. Диск (один из) Hitachi 640 гиг SATA II. Бэкап лежал на диске Seagate (320 гиг SATA II), рестор шел на Hitachi.
А у Вас?
График загрузки процессора странный скорее всего именно из-за свопа, ну и я не чистил систему от текущих процессов при ресторе (почтовик, антивирусник, и прочее). Бекап и база лежали на одном разделе - там же где и система.
hvlad писал(а): PS Начиная с 2.1, можно попросить ФБ не использовать файловый кеш. Не советую это включать ради "проблемы рестора".
PPS Начиная с 2.5, ФБ умеет ограничить его использование операционной системой, если есть права.
"Проблемы рестора" нет - есть замедление работы системы из-за процесса рестора.
По поводу парамета FileSystemCacheSize = 30 - пробовали менять его и на 20 и на 15 - эффект тот же. FB стартует с системными правами.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: FB 2.5.0.26136 - ест память при ресторе

Сообщение hvlad » 24 ноя 2010, 10:55

TAV писал(а):"Проблемы рестора" нет - есть замедление работы системы из-за процесса рестора.
Ну скопируйте файл 3-4 гига и будет то же самое.
TAV писал(а):По поводу парамета FileSystemCacheSize = 30 - пробовали менять его и на 20 и на 15 - эффект тот же. FB стартует с системными правами.
В firebrid.log что-то есть ?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: FB 2.5.0.26136 - ест память при ресторе

Сообщение kdv » 24 ноя 2010, 13:03

не чистил систему от текущих процессов при ресторе (почтовик, антивирусник, и прочее)
так и я не чищу, только весь этот софт обычно никак ФБ не мешает, т.к. в простое процессор или диск не ест. А антивирусу явно сказано, не трогать gdb/fdb/fbk и так далее.

Собственно, я уже говорил, что серверная ОС это вовсе не win 7. И я надеюсь, что на 2008-ой у Вас будет не 2 гига.
пробовали менять его и на 20 и на 15 - эффект тот же.
похоже, у Win7 свое мнение. Такое же я наблюдал, когда игрался с утилитами Руссиновича на Windows 2000. Вначале вроде эффект есть явно, а потом бац, винда игнорирует заданные параметры.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: FB 2.5.0.26136 - ест память при ресторе

Сообщение hvlad » 24 ноя 2010, 13:10

kdv писал(а):похоже, у Win7 свое мнение. Такое же я наблюдал, когда игрался с утилитами Руссиновича на Windows 2000. Вначале вроде эффект есть явно, а потом бац, винда игнорирует заданные параметры.
Мы используем другой метод. Более "постоянный" :)
Но это API (SetSystemFileCacheSize) появилось относительно недавно

TAV
Сообщения: 48
Зарегистрирован: 31 май 2005, 08:18

Re: FB 2.5.0.26136 - ест память при ресторе

Сообщение TAV » 24 ноя 2010, 13:13

hvlad писал(а):Ну скопируйте файл 3-4 гига и будет то же самое.
Совсем не тоже самое, при копировании - Рисунок 1 - оранжевая полоска (память, содержимое которой необходимо записать на диск, прежде чем использовать, то есть дисковый кеш), практически не меняется в пределах 180-200 МБ при копировании файла размеров 5 ГБ.
Рисунок 2 - ситуация до копирования и бекапа БД.
Рисунок 3 - ситуация на момент окончания бекапа - зеленая полоска (память, используемая процессами, драйверами и операционной системой) - практически заполнена, то есть если понадобится память для другого процесса, система ее будет брать из свопа. Запуск любых процессов в этот момент сопровождается "тормозами".
Синяя полоска - это память в которой содержатся кешированные данные ранее запущенных процессов, то есть по сути свободная для использования.
Рисунок 1.Изображение
Рисунок 2.Изображение
Рисунок 3.Изображение
Скрины из монитора ресурсов Windows 7
hvlad писал(а):В firebrid.log что-то есть ?
Ничего нет, все чисто.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: FB 2.5.0.26136 - ест память при ресторе

Сообщение hvlad » 24 ноя 2010, 13:59

TAV писал(а):
hvlad писал(а):Ну скопируйте файл 3-4 гига и будет то же самое.
Совсем не тоже самое, при копировании - Рисунок 1 - оранжевая полоска (память, содержимое которой необходимо записать на диск, прежде чем использовать, то есть дисковый кеш)
Т.е. по вашему кеш содержит только грязные страницы ?
Абсолютное непонимание что такое кеш и как используется память.
Там ещё кроме полосочек буковки есть. И в них написано, сколько кешировано и сколько доступно.

TAV
Сообщения: 48
Зарегистрирован: 31 май 2005, 08:18

Re: FB 2.5.0.26136 - ест память при ресторе

Сообщение TAV » 24 ноя 2010, 14:58

hvlad писал(а):Там ещё кроме полосочек буковки есть. И в них написано, сколько кешировано и сколько доступно.
Смотрим рисунок 3 - сколько там кешировано?
Вы провели аналогию с копированием большого файла - я вам привел реальный пример. При копировании файла все совершенно по другому - дисковый кеш - это оранжевая полоска.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: FB 2.5.0.26136 - ест память при ресторе

Сообщение hvlad » 24 ноя 2010, 18:08

Я не вижу смысла доказывать, что сладкое не есть горькое.
В дальнейшем буду вас просто игнорировать.

Ответить