powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / PE 0x20
25 сообщений из 28, страница 1 из 2
PE 0x20
    #40028137
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую знатоков!

Планирую использовать 32-битный Superserver WI-V3.0.7.33374, но тема относится и к 4-ке тоже. Раньше использовал Classic 1.5, там этот вопрос не актуален.

Вопрос, наверное, к разработчикам. Почему при сборке не прописывается PE-флаг 0x20 ?

Ради теста прописал флаг hex-редактором вручную в firebird.exe. Две тестовые базы с DefaultDbCachePages = 100K и PageSize = 16384 (итого две по 1.6 Гб = 3.2 Гб) запустились одновременно и прекрасно работают. Кэш задействуется полностью. Картинка прилагается.

Без флага запускается только одна. Вторая выдает ошибку:

Код: plaintext
1.
2.
SQL error state =HY000
Operating system directive MapViewOfFile failed.
Недостаточно ресурсов памяти для обработки этой команды. ....

Может есть какие-то скрытые проблемы, которые я не увидел ?

P.S. 64-битный не предлагать.
...
Рейтинг: 0 / 0
PE 0x20
    #40028169
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory
Вопрос, наверное, к разработчикам. Почему при сборке не прописывается PE-флаг 0x20 ?
Никто не тестировал поведение FB x32 в таком варианте.
Никто никогда об этом не просил.
Есть х64 системы, зачем эти извраты.

PS У флага нет названия и все должны догадываться о его смысле ?
...
Рейтинг: 0 / 0
PE 0x20
    #40028171
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory,

я вот тоже спрошу, нафиг это надо. Если вы подрихтовали exe чтобы он мог 3.2 гиг сожрать, то вы всё равно его будете запускать его на 64битной операционке, потому что 32битная от таких запросов лопнет.
Кроме того, в чем смысл балансирования на грани? Ну дали кэш здоровенный, о, круто. А если еще влепить память для сортировок, или метаданные распухнут, то ФБ брякнется по превышению 3.2 гиг.
Я понимаю, на классике на его штатно рекомендуемых настройках пофиг, что 32бит что 64бит. Но супер-то 32битный зачем? Ладно я в такое сижу, потыкиваю, на девелоперско-тестовой машине. А в production это совсем не надо. Да и терять минимум 7% производительности просто так - тоже сомнительная идея.
...
Рейтинг: 0 / 0
PE 0x20
    #40028212
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvЛадно я в такое сижу, потыкиваю, на девелоперско-тестовой машине.

да таких машин уже сто лет нету. Любая современная IDE прожорлива и отнимает минимум 2Гб.
Это скорее для клиентов с устаревшим говном, где приложения и сервер стоят на одной машине. Правда я не очень понимаю зачем при этом задавать кеш в макс.
...
Рейтинг: 0 / 0
PE 0x20
    #40028307
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad
ggreggory
Вопрос, наверное, к разработчикам. Почему при сборке не прописывается PE-флаг 0x20 ?

Есть х64 системы, зачем эти извраты.


Невозможно собрать UDF нужной разрядности. Часть модулей без исходников. Производителей нет (разорились). Заменить нечем.

hvlad

PS У флага нет названия и все должны догадываться о его смысле ?


На сайте Микрософта он называется IMAGE_FILE_LARGE_ADDRESS_AWARE

https://docs.microsoft.com/en-us/windows/win32/debug/pe-format
...
Рейтинг: 0 / 0
PE 0x20
    #40028310
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggoryНевозможно собрать UDF нужной разрядности. Часть модулей без исходников. Производителей
нет (разорились). Заменить нечем.

И это как-то заставляет обслуживать несколько баз с безумно задранным кэшем одним
инстансом сервера?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
PE 0x20
    #40028375
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv
ФБ брякнется по превышению...


Ещё хочется узнать у экспертов-практиков. Он реально брякается или просто statement не выполнится и клиенту вернется какой-нибудь код ошибки? Может файл базы повредиться при возникновении out of memory в процессе firebird.exe?
...
Рейтинг: 0 / 0
PE 0x20
    #40028377
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory
Невозможно собрать UDF нужной разрядности.
Что ж такого секретного они делают? после перехода с 1.0 на 2.5 мы выкинули все УДФ.
ggreggory
Заменить нечем.
С трудом верится.
ggreggory
Раньше использовал Classic 1.5
Классик в тройке не отменяли, он вполне себе работает.
...
Рейтинг: 0 / 0
PE 0x20
    #40028400
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

инстансом сервера?..


Мульиинстанс как запасной вариант можно будет использовать. Годится!

Но меня больше волнует вопрос дефолтных значений firebird.conf для дистрибутива Firebird исходя из требований:
1) Никто не должен залезать в настройки firebird.conf и что-то менять
2) По кол-ву баз и их размерам достаточно большой разброс

В доступных материалах (вот например https://ib-aid.com/en/optimized-firebird-configuration/ ) варианты 32-битного Superserver-а не представлены.

Увеличенное адресное пространство даёт больше возможности для маневра при принятии решения (выборе параметров конфигурации). Например, в материалах выше предлагается дефолтный кэш в 20К страниц (я смотрю вариант 64-битной настройки superserver-a). При размере страницы БД 16К с таким кэшем можно запустить не больше 6 баз (на 32-битном Superserver). А с буфером сортировки и того меньше. Т.е. такой размер для 32-битного и без PE-флага 0x20 - не подойдет. А ставим флаг и в принципе предлагаемый дефолтный кэш 20К вполне себе рабочий.

Ivan_Pisarevsky

ggreggory
Заменить нечем.
С трудом верится.


Это вопрос денег, а не трудностей. Стоимость замены не укладывается в имеющийся бюджет.

автор
ggreggory
Раньше использовал Classic 1.5
Классик в тройке не отменяли, он вполне себе работает.

Как понимаю Superserver это одно из главных преимуществ 3-ей версии. Или я не прав? У меня нет практики. Напишите, было бы интересно!
...
Рейтинг: 0 / 0
PE 0x20
    #40028401
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggoryА ставим флаг и в принципе предлагаемый дефолтный кэш 20К вполне себе рабочий.

А ты не предполагай, ты загляни в конфиг. Умолчательный размер кэша для суперсервера 2048
страниц. Так что если идиоты не будут залезать в настройки firebird.conf, то они из из
доступного ОЗУ не выйдут.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
PE 0x20
    #40028427
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggoryНевозможно собрать UDF нужной разрядности. Часть модулей без исходников.
такие прям кабздец секретные udf что нельзя заменить альтернативами или болванками?
ggreggoryОн реально брякается или просто statement не выполнится и клиенту вернется какой-нибудь код ошибки?
ну, возьми 32бит приложение на Дельфи, и аллокируй там пару строк по 2 гига. Винда прибьет приложение по переполнению памяти.
Ну не может 32бит приложение штатно адресовать больше 2 гиг.
https://overcoder.net/q/415486/какой-максимальный-объем-памяти-доступен-для-приложения-c-в-32-битной-windows
ggreggoryварианты 32-битного Superserver-а не представлены.
помилуй мя, кому они нужны-то??? сидельцам на 32битной Windows XP? Все серверные (да и десктопные ОС) нынче 64битные.
ggreggoryУвеличенное адресное пространство даёт больше возможности для маневра при принятии решения (выборе параметров конфигурации).
спасибо, оч. смешно. Был лимит на 2 гига, стало 3.2 гига, охрененные возможности для маневра.
Я понимаю, что очень сильно хочется на суперсервер, но если у вас невозможно переписать udf, так сидите дальше на 32битном классике, не надо рыпаться на супер с увеличением на 32битное хрен-пойми-чего с мутными перспективами.
ggreggoryПри размере страницы БД 16К с таким кэшем можно запустить не больше 6 баз (на 32-битном Superserver). А с буфером сортировки и того меньше. Т.е. такой размер для 32-битного и без PE-флага 0x20 - не подойдет. А ставим флаг и в принципе предлагаемый дефолтный кэш 20К вполне себе рабочий.
это мне напомнило как я в 1987 году написал драйвер принтера на ассемблере, который занимал 600 байт в памяти. Но тогда деваться некуда было.
ggreggoryКак понимаю Superserver это одно из главных преимуществ 3-ей версии. Или я не прав? У меня нет практики. Напишите, было бы интересно!
да ё-мое, я видео по архитектурам фб3 выпустил в марте 2018 года. Сколько можно уже про это...
https:// www.youtube.com/watch?v=ewrNLNDOtiE
...
Рейтинг: 0 / 0
PE 0x20
    #40028472
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory

В доступных материалах (вот например https://ib-aid.com/en/optimized-firebird-configuration/ ) варианты 32-битного Superserver-а не представлены.


потому что 32-битный SS на фиг никому не нужен.

авторКак понимаю Superserver это одно из главных преимуществ 3-ей версии. Или я не прав?

не совсем прав. Там помимо супера ещё много чего. Некоторые всё равно классик оставляют.

Суперсервер раскрывается именно на 64-битном железе, ибо можно поставить большой кеш и под сортировку много памяти.
...
Рейтинг: 0 / 0
PE 0x20
    #40028481
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv

ну, возьми 32бит


Дима, только не обижайтесь, но вот тут человек таблетки рекламировал:

https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=523729&msg=22242699

Просто я не то спрашиваю, а вы не то отвечаете. За видео, конечно, спасибо, очень целостное и внятное, особенно с историческим экскурсом.

ggreggory
kdv
ФБ брякнется по превышению...


Ещё хочется узнать у экспертов-практиков. Он реально брякается или просто statement не выполнится и клиенту вернется какой-нибудь код ошибки? Может файл базы повредиться при возникновении out of memory в процессе firebird.exe?


Провел разные тесты. Сервер НЕ ПАДАЕТ . При превышении по буферам просто не дает подключиться к базе с выдачей сообщения, которое я привел выше. При превышении по сортировке просто аллокирует не сколько в конфиге, а сколько получится. Не получается - использует диск. В диспетчере это выглядит так: 3.8 Гб смог аллокировать, а дальше массовый ввод-вывод, хотя в конфиге я поставил буфер сортировки 1Гб. Картинка ниже.
...
Рейтинг: 0 / 0
PE 0x20
    #40028484
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Картинка
...
Рейтинг: 0 / 0
PE 0x20
    #40028488
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если кому очень приспичило, то сигнатуры-то UDF известны, написать обёртку-маршаллинг на
основе любого знакомого RPC проблем не должно составить.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
PE 0x20
    #40028491
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory
Как понимаю Superserver это одно из главных преимуществ 3-ей версии.
Не самое главное, но таки весьма интересное.
Симонов Денис
Некоторые всё равно классик оставляют.
Да. И ничего зазорного в этом не вижу.

Если ОСи достаточно памяти, то классик вполне себе живо работает и гнать попусту на него волну не стОит.
...
Рейтинг: 0 / 0
PE 0x20
    #40028510
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

А если кому очень приспичило, то сигнатуры-то UDF известны, написать обёртку-маршаллинг на
основе любого знакомого RPC проблем не должно составить.


Можно. Цена будет - увеличение глючности и уменьшение скорости. Но если приспичит - можно!

Ivan_Pisarevsky
Да. И ничего зазорного в этом не вижу.

Если ОСи достаточно памяти, то классик вполне себе живо работает и гнать попусту на него волну не стОит.


Да я не гоню, меня классик в 1.5 устраивает. Но тот же Кузьменко в своих видео показывает, что на Super раза в 3 идет быстрее сортировка по индексу за счет большого кэша. Мне это интересно. У нас не-скалярные запросы все с order by если не по полям, то по ключу (искусственному). А искусственный ключ, как понимаю, тоже может иметь плохой фактор кластеризации.
...
Рейтинг: 0 / 0
PE 0x20
    #40028513
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggoryЦена будет - увеличение глючности и уменьшение скорости.

Наоборот: никакая глючная UDF не положит целый сервер и не утечёт всю его память.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
PE 0x20
    #40028577
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory
Провел разные тесты
Да не в FB проблема. В стародавние времена рантайм борланда, например, использовал 32-й бит для своих целей. А это означает, что передача такому коду указателя "от двух гигабайт и выше" сломает всё, до чего дотянется.
Вы не переходите на 64-разряда из-за сторонних UDF. Уверены, что у них нет проблем "со знаковостью"?
...
Рейтинг: 0 / 0
PE 0x20
    #40028596
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
ggreggory
Провел разные тесты
Да не в FB проблема. В стародавние времена рантайм борланда, например, использовал 32-й бит для своих целей. А это означает, что передача такому коду указателя "от двух гигабайт и выше" сломает всё, до чего дотянется.

Когда это указатели были signed?..
...
Рейтинг: 0 / 0
PE 0x20
    #40028603
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory,

а что в этих UDF какая-то супер-пупер логика? Ты не знаешь что они делают?
У меня тоже во времена 1.5 полбазы было обвешано UDF. В основном rfunc + ещё свои.
Когда переходил на 2.5, месяца 3 мучился, но в итоге выпилил абсолютно все. Либо заменил на встроенные функции, либо написал ХП, либо перенёс на сторону клиента.
А когда переходил на тройку оформил, те ХП как PSQL функции.
...
Рейтинг: 0 / 0
PE 0x20
    #40028610
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggoryДима, только не обижайтесь, но вот тут человек таблетки рекламировал:
Просто я не то спрашиваю, а вы не то отвечаете. За видео, конечно, спасибо, очень целостное и внятное, особенно с историческим экскурсом.
это намек на старческо-склеротические явления? :-)
я отвечаю именно на то, что вы спрашиваете.
ggreggory64-битный не предлагать.
Официальный ответ - вы занимаетесь фигнёй. У вас получилось? Я рад за вас.
...
Рейтинг: 0 / 0
PE 0x20
    #40028671
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp
Когда это указатели были signed?..
В дополнительном двоичном коде "знаковость" - всего лишь способ интерпретации (битового) значения.
Априори утверждать, что все операции с указателями конкретного двоичного кода полностью корректны при любых возможных значениях указателей ... Ну не знаю.
...
Рейтинг: 0 / 0
PE 0x20
    #40028751
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё что только можно, естественно, переведено на встроенные функции. Они и удобнее, и быстрее работают.

Basil A. Sidorov

Вы не переходите на 64-разряда из-за сторонних UDF. Уверены, что у них нет проблем "со знаковостью"?


Про знаковость слышу первый раз. UDF свои, на Delphi, скомпилированы на 10.3. Но они используют 32-битные объектные модули CodeGear C++ 6.40 и Turbo Assembler 5.0, ещё часть модулей - декомпилированные DCU, т.е. это PAS, но код на ассемблере (32-битном).

Резюме. Выводы делать рано. Пока буду оставаться на пропатченном 32-битном superserver-е и патчить все новые версии Firebird-а при обновлении, это не трудно. А там время покажет. Но все предложенные в этой ветке варианты буду держать в уме. Спасибо!
...
Рейтинг: 0 / 0
PE 0x20
    #40028949
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
alekcvp
Когда это указатели были signed?..
В дополнительном двоичном коде "знаковость" - всего лишь способ интерпретации (битового) значения.
Априори утверждать, что все операции с указателями конкретного двоичного кода полностью корректны при любых возможных значениях указателей ... Ну не знаю.

Как бы у ограничения в 2Гб ноги растут как раз из-за signed int. Если бы указатели были со знаком, то x86 OS ни при каких условиях не могла бы адресовать более двух гигабайт памяти (без свопа). А так ей доступно 4 (минус адреса оборудования). Но да, если есть какое-то кривое приложение, писаное индусами которые присваивают адреса в памяти знаковым переменным, то могут быть сюрпризы.

Примерно оттуда же растут ноги у борланда, когда все Size и Count у них имеют тип Integer, как будто размер файла может быть отрицательным...
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / PE 0x20
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]