|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
Здравствуйте господа. Столкнулся с проблемой, которую не могу решить. Перевел базу с FB 2.5 (SuperClassic) на FB 3.0.4 (SuperServer). База: ~35Гб, Кол-во пользователей: ~200, Сервер: 2 х E5-2630, 32 Гб, win server 2012 (64) FB 3.0.4.33054 (64), конфигурационный файл - по умолчанию, автоматическая сборка мусора отключена, ежедневный (-ночный) backup/restore. До перевода средняя загрузка процессоров составляла порядка 10-20% После перевода на FB3 и установки SuperServer загруженность увеличилась до 30-40% с периодическими (раз в несколько часов) выходами на 90-100% загрузку. При которой пользователи вообще работать не могут, приходилось перезапускать FB. Если переключить с FB 3.0.4 (SuperServer) на FB 3.0.4 (SuperClassic) - все проблемы снимаются. Загрузка те же 10% что были на FB 2.5. Никаких зависаний. Буду благодарен за совет в какую сторону рыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 13:52 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
ahmed sultanovFB 3.0.4.33054 (64), конфигурационный файл - по умолчанию, в этом случае SS мягко говоря не сильно полезен. Страничный кеш по умолчанию никуда не годится ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 13:57 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
ahmed sultanovв какую сторону рыть. В сторону рынка труда: нанять сисадмина и DBA. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 14:02 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Это да, мысль хорошая. Но в данной истории все таки интересно почему SuperClassic (c настройками по-умолчанию) работает, SuperServer (опять же по-умолчанию) зовет сисадмина :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 14:07 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
ahmed sultanovSuperServer (опять же по-умолчанию) зовет сисадминаСм. первый ответ в топике, если там непонятно, то см второй ответ. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 14:15 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
ahmed sultanov, вообще-то на базе такого размера оставлять дефолтный конфиг это верх не профессионализма, не зависимо от архитектуры. Прежде чем бездумно менять архитектуры неплохо бы почитать чем они отличаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 14:25 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
Симонов Денис, Полностью с Вами согласен, Денис. Понятно, что параметры по умолчанию неоптимальны. Просто мне казалось, что значения по-умолчанию могут приводить к снижению эффективности. Но не к полной же неработоспособности. И опять же почему "по-умолчанию" у SS - это 100% загрузка именно процов. А "по-умолчанию" у SC - полностью работоспособная система (возможно не оптимальная). Пока роюсь в документации, но ответа не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 14:42 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
что происходит в момент 100% загрузки? трассировка надеюсь включена? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 14:49 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
ahmed sultanov, чего там рыться то. В SS страничный кеш общий и он должен быть большим. В CS, SC раздельный, его больше 2048 страниц ставить нельзя. Конфиг по умолчанию рассчитан на очень маленькие БД. И если в SC, CS маленький кеш особой рояли не играет (опора на файловый кеш), то в SS даже очень влияет. для супера начни с Код: plaintext 1.
ahmed sultanovавтоматическая сборка мусора отключена что правда, а может не сборка мусора, а свип? ahmed sultanovежедневный (-ночный) backup/restore. зачем? Правильно построенным системам это не требуется. В смысле бекап нужен, рестор нет. ahmed sultanovКол-во пользователей: ~200 при таком количестве пользователей, даже в классике и суперклассике уже требуется дополнительная настройка. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 14:55 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
ahmed sultanov, небось у приложений с управлением транзакциями все настолько плохо, что принудительная сборка мусора на суперклассике работает, а фоновая на супере - тормозит. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 17:54 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
kdv, Честно признаться, приложение на BDE. И с явным управлением транзакциями там ээээ... не очень. Простите мое невежество, я еще только начинаю разбираться во всем этом: а что у SuperServer-a сборка мусора работает как то по другому чем у SuperClassic-а? Просто у нас sweep interval установлен в 0 и сборка мусора выполняется один раз в день (ночью) - во всяком случае я так это понимал. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 19:17 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
ahmed sultanov, не путай сборку мусора и свип. В супере помимо кооперативной сборки мусора работает ещё и фоновая. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 19:29 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
Симонов Денисчего там рыться то. В SS страничный кеш общий и он должен быть большим. В CS, SC раздельный, его больше 2048 страниц ставить нельзя. Для меня данный вопрос также актуальный. По умолчанию используется файловый кэш ОС, поэтому, если ОЗУ достаточно, ОС может всю БД держать в ОЗУ. В таком случае, почему для SS нужно выделять больше страниц? Получается, обращение к страницам БД, даже если они находятся в кэше ОС - это очень затратная операция? Если выделить слишком много страниц, то возникнет ситуация, когда одни и те же страницы БД будут находится в ОЗУ дважды (и в кэше ОС и в памяти FB), а другие страницы останутся не загруженными в ОЗУ. В идеале, конечно, нужно отключать использование кэша ОС и ставить достаточное количество страниц БД. Но как его правильно рассчитать, если размер БД постоянно увеличивается? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 09:06 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
DmSerПолучается, обращение к страницам БД, даже если они находятся в кэше ОС - это очень затратная операция? не очень, а более. Если нужной страницы нет в страничном кеше, но она есть в файловом, она всё равно считается в страничный. То есть страничный кеш будет задействован в любом случае. Это дороже чем просо логическое чтение (фетч). DmSerВ идеале, конечно, нужно отключать использование кэша ОС и ставить достаточное количество страниц БД. Но как его правильно рассчитать, если размер БД постоянно увеличивается? Для очень больших БД и не надо чтобы она вся влезала в кеш, достаточно выделить такой размер кеша, чтобы в него помещалась активная часть БД. Как определить сколько это хз. Экспериментировать надо, ну или наобум, простым дележом оперативы на несколько частей, и так чтобы ни кого не обделить. На примере автора 32 Гб. Отдаём примерно половину памяти под страничный кеш (12 Гб), ещё 2-3 Гига под сортировку. Остальное под файловый кеш, ОСь, кеш метаданных и другую приблуду. DmSerВ идеале, конечно, нужно отключать использование кэша ОС и ставить достаточное количество страниц БД. Это можно сделать, но надо учитывать что при этом сильно замедлится работа с БД с холодным кешем, с разогретым разницы не будет. Упреждающее чтение в кеш Firebird пока не реализовано. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 11:28 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
Достаточность кеша обычно проверяют соотношением cache miss\cache hit. У нас cache miss = read, cache hit = fetch. Хорошим соотношением для FB является read\fetch < 0.005, но это не высечено в камне. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 11:51 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
DmSerЕсли выделить слишком много страниц, то возникнет ситуация, когда одни и те же страницы БД будут находится в ОЗУ дважды (и в кэше ОС и в памяти FB)Насколько я понимаю устройство страничных кэшей - вы заблуждаетесь. Дублирования не будет: одни и те же страницы физической памяти будут отображены и в адресное пространство FB-процесса и в адресное пространство системного кэша. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:31 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, ошибаешься ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:17 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
ahmed sultanovЧестно признаться, приложение на BDE. И с явным управлением транзакциями там ээээ... не очень. В BDE с явным управлением ими вообще не было ни каких, на сколько помню, проблем. мое невежество Вот на это, пока что, однако, похоже.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:40 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
Vlad F, это смотря с какой стороны посмотреть. Транзакция возможна только одна, подтвердил её и все датасеты позакрывались, а COMMIT RETAIN это уже не совсем нормальное управление транзакциями. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:54 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
Симонов ДенисТранзакция возможна только одна, подтвердил её и все датасеты позакрывались Это в IBX,а не в BDE. Там линки создавали локальные таблицы для кэша резалт-сетов. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 14:05 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
hvladошибаешьсяА разве всяческие mmap-ы не позволяют отображать одну и ту же страницу в адресное пространство разных процессов? Или "Восток - дело тонкое"? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 15:53 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, страничный кеш Firebird не использует mmap и работает независимо от кеша FS. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:38 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
Симонов ДенисVlad F, это смотря с какой стороны посмотреть. Транзакция возможна только одна, подтвердил её и все датасеты позакрывались, а COMMIT RETAIN это уже не совсем нормальное управление транзакциями. Мы про явное управление ими ли где? На что тут ещё можно двояко смотреть, когда в наличии были .StartTransaction, .Commit и .Rollback? Потом со всем этим сообщество благополучно перешло на IBX, где, кстати, было все ровно то же самое, разве что одновременных транзакций стало возможно несколько. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 17:10 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
Господа, спасибо за рекомендации. Проверяю все что можно. К сожалению в данный момент вариант с заменой настроек по умолчанию на другие не помогает. Установил в конфиге: ServerMode = Super DefaultDbCachePages = 50000 TempBlockSize = 2M TempCacheLimit = 2G Результат тот же: Через примерно час работы выход всех процессоров на загрузку от 50% и вверх до упора. Все тормозят, новые пользователи не подключаются. До перезапуска FB. Переключение на СуперКлассик - полет нормальный, все работает. Боюсь, что все таки идея о том, что конфиг по-умолчанию для СуперСервера делает большую базу полностью неработоспособной - это неправильная идея. И в какой то степени оскорбительная для команды разработчиков FB. Здесь дело в чем то другом. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2019, 11:08 |
|
Проблема загрузки процессоров при использовании FB 3 (SS)
|
|||
---|---|---|---|
#18+
ahmed sultanov, кто сказал что делает неработоспособной? Я говорил что использование SS в конфигурации по умолчанию как минимум бесполезно. А про загрузку процессоров сам смотри что именно у тебя их грузит. Конечно возможно в коде FB есть какой-то баг который вызывает гонки, но тогда почему он не проявляется у других. Делай воспроизводимый тест. Чтобы тебе помогли ты должен предоставить максимум информации о том что происходит у тебя в системе когда она встаёт колом. Может у вас запросы настолько кривые, что такое использование процессоров это нормально. Может UDF/UDR специфические есть? Неплохо бы снять статистику с БД. Предоставить результаты fb_lock_print ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2019, 11:33 |
|
|
start [/forum/topic.php?fid=40&fpage=23&tid=1560712]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 153ms |
0 / 0 |