|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
Собственно говоря был использован оптимальный конфиг для FB 3.0. Количество пользователей порядка 80 днем, к ночи падает до единиц. TempCacheLimit = 364М (на сколько я понимаю это максимальное значение занимаемой ОЗУ для хранения данных запросов подключения). Собственно говоря исходя из названия при завершении подключения занимаемая им ОЗУ должна освобождаться. Но по факту имеем занятые почти 32 Гб памяти и днем и ночью. Специально вечером подключался к серверам с той же архитектурой FB в отсутствие подключений: было занято по 1 Гб памяти при том что работало только серверное приложение, которое держит Read Only транзакцию для отображения информации о подключениях. Хотелось бы отметить, что на серверах с FB 3.0.Х x32 SS без подключенных пользователей процесс сервера занимал 70-110 Мб ОЗУ. Что это может быть и как с этим бороться? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2017, 15:00 |
|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
Freddie26Собственно говоря исходя из названия при завершении подключения занимаемая им ОЗУ должна освобождаться. Нет, не должна. Firebird использует свой собственный менеджер памяти и не возвращает память системе пока та может ещё понадобиться. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2017, 15:07 |
|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
размер страничного кеша остался за кадром. А именно он занимает память при наличии хоть одного пользователя, даже если это бездействующий читатель. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2017, 15:10 |
|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
Хорошо. Но должен же ж FB когда то ее отпускать? Как установить лимит использования? Я устанавливал TempCacheLimit = 200 Мб с расчетом на 100 подключений чтобы максимальное использование памяти было 20-22 Гб, но сервер кушал пока было что. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2017, 15:12 |
|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
dimitr, DefaultDbCachePages = 50000. Как я и сказал настройки из файла оптимального конфига отсюда . ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2017, 15:13 |
|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
Freddie26, 1. смысл параметра TempCacheLimit ты угадал не правильно. Почитай его описание. 2. память выделенная под страничный кеш не будет освобождена в SS пока есть хоть одно подключение. Память потребляемая сервером складывается из 1. Память под страничный кеш (см. параметр DefaultDbCachePages). Расчитывается как размер кеша в страницах * на размер страницы 2. Память под файловый кеш 3. Память под кеш метаданных (никаким параметром это не регулируется) 4. Память под сортировки и хеш-таблицы (это как раз TempCacheLimit) 5. Память под буфера оконных функций 6. Память под двунаправленные курсоры ... ну и до фига ещё того на что ты параметрами не повлияешь По сути ищи косяки в UDF ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2017, 15:15 |
|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
Freddie26TempCacheLimit = 364М (на сколько я понимаю это максимальное значение занимаемой ОЗУ для хранения данных запросов подключения) прекрасные фантазии. Не надо "понимать". Надо открыть firebird.conf, найти параметр, выше него находится комментарий, зачем этот параметр нужен. Дальше либо прочитать английский текст, либо перевести его в гугл транслэйте, либо спросить здесь. # The maximum amount of the temporary space that can be cached in memory. temporary space. Не для хранения "данных подключения". Freddie26Я устанавливал TempCacheLimit = 200 Мб с расчетом на 100 подключений боже ж ты мой. http://www.ibase.ru/files/firebird/Firebird_Hardware_Guide_2015_rus.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2017, 15:17 |
|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
Freddie26TempCacheLimit = 364М (на сколько я понимаю это максимальное значение занимаемой ОЗУ для хранения данных запросов подключения)Нет. "Там" написано, что это такое на самом деле ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2017, 15:18 |
|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
hvlad, "там" ни черта не написано, потому что кто-то додумался выкинуть все комментарии из "оптимизированных" конфигов :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2017, 15:44 |
|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
dimitrhvlad, "там" ни черта не написано, потому что кто-то додумался выкинуть все комментарии из "оптимизированных" конфигов :-)Кто же это сделал ? (ц) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2017, 16:00 |
|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
dimitr, ну конечно. Вспоминаю цирк на семинаре по шифрованию, когда на ноуте С. не обнаружилось НИ ОДНОГО базового firebird.conf. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2017, 16:32 |
|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
kdv, Отлично! Перечитал материал по ссылочке. Тут даже есть формула расчета занимаемой сервером ОЗУ с учетом настроек, в моем случае: (50000 * 16 Кб) + 364 Мб = 1145,25 Мб. Чем тогда занимается остальная память? :) Еще хотелось бы отметить, что в статье не сказано о оптимальном размере кластера файловой системы относительно размера страницы БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2017, 16:39 |
|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
Freddie26, я же вроде написал что это далеко не вся память потребляемая сервером. Есть ещё временные блобы, кеш метаданных, файловый кеш... В конце концов UDF кривые утечку памяти давать могу. Попробуй в мониторинге посмотреть потребление памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2017, 16:48 |
|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
Симонов Денис, Хотелось бы про всё почитать подробней и желательно разжевано для чайников :) Кэш метаданных читается занимается на подключение и он фиксированный пока не меняешь структуру БД? Как хоть примерно прикинуть сколько памяти требуется для метаданных? Блобы я так понимаю также освобождают память как и весь остальной кэш при отключении всех от БД? UDF у нас вообще не используются. А каким именно мониторингом вы предлагаете воспользоваться? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2017, 17:04 |
|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
Freddie26, таблица MON$MEMORY_USAGE может быть поможет выяснить что именно жрёт память вплоть до конкретного стейтмента Freddie26Кэш метаданных читается занимается на подключение и он фиксированный пока не меняешь структуру БД? да прям. Всё зависит к каким метаданным ты обращаешься, абсолютно все метаданные не тянутся по умолчанию. Но в A< 3 он не общий даже в SS. Хотя адски много он сожрать не должен. И не забывай есть ещё файловый кеш. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2017, 17:43 |
|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
Freddie26Блобы я так понимаю также освобождают память как и весь остальной кэш при отключении всех от БД? нет. Либо по закрытию курсора, либо по завершению транзакции. Точнее hvlad или dimitr скажет ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2017, 17:46 |
|
Не освобождается память подключений к БД FB 3.0.0 - 3.0.1 х64 SS
|
|||
---|---|---|---|
#18+
Симонов ДенисFreddie26, таблица MON$MEMORY_USAGE может быть поможет выяснить что именно жрёт память вплоть до конкретного стейтмента Интересно... Рано я начал грешить на 3.0.1. Там похоже всё хорошо. Сервер 3.0.1 SS x64 на 40-50 пользователей с оптимальным конфигом по ссылке выше, процесс FB потребляет 3 Гб ОЗУ. По таблице MON$MEMORY_USAGE все подключения используют ~800 Мб. Для сравнения взял второй сервер 3.0.0 SS x64, 100 подключений, так же оптимальный конфиг, использование памяти по таблице MON$MEMORY_USAGE 500 Мб. Процесс FB кушает 13 Гб ОЗУ. Предполагаю проблема в утечке памяти которая была исправлена в 3.0.1 (что-то связанное c select'ами если не ошибаюсь). Симонов Дениснет. Либо по закрытию курсора, либо по завершению транзакции. Я так понимаю Blob'ы входят в отображаемую память MON$MEMORY_USAGE и хранятся в оперативном доступе? Если так, то занятый объем не существенен. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2017, 10:08 |
|
|
start [/forum/topic.php?fid=40&fpage=47&tid=1561677]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 290ms |
total: | 441ms |
0 / 0 |