powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Зависание базы - новые коннекты не реагируют, старые работают
25 сообщений из 103, страница 2 из 5
Зависание базы - новые коннекты не реагируют, старые работают
    #39275654
db20mln
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот дамп, но я не уверен что это тот, который нужен - т.к. после падения база тут же перезапускается.
https://yadi.sk/d/rUeYqOHCtPomc
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275655
db20mln
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Снова упал с ошибкой в логе:

DBS Mon Jul 18 14:31:45 2016
Access violation.
The code attempted to access a virtual
address without privilege to do so.
This exception will cause the Firebird server
to terminate abnormally.
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275658
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
db20mlnПришлось поставить DefaultDbCachePages = 640000а) накой назначать огромный кеш ВСЕМ БД ?
б) FileSystemCacheThreshold отредактировал ?


db20mlnСперва база упала из-за udf - может и не из-за нее, но в логах дважды появилась ошибкаОднозначно из-за неё
db20mlnЗаменил ее на udrНа что ???

db20mlnПосле чего вообще все упалоА до этого падало как-то иначе, не вообще ?
firebird.log во время падения что-то содержит, кроме INET ошибок ?

db20mln Общие наблюдения:
Выборка и апдейт выполняются дольше, т.е. в сумме все делается в 1.5 - 3 раза дольше.Потому что ты отключил файловый кеш

db20mlnПо монитору ресурсов: загрузка диска на 90-99%, при этом ввод/вывод = 7-20 Мб/с.
При классике было: загрузка диска на 85-95%, ввод/вывод = 20-70 Мб/с.Потому что ты отключил файловый кеш

db20mlnВ время работы воркеров, даже в IB Expert не зайдешь - тупит сильно, по несколько минут не реагирует.Потому что ты отключил файловый кеш
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275661
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
db20mlnВот дамп, но я не уверен что это тот, который нужен - т.к. после падения база тут же перезапускается.Как ты его получил ?

Для получения дампа в момент падения чти про WER (windows error reporting)
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275664
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
db20mln,

а ты через новый fbclient работаешь или через тот что от 2.5 остался?
Подключаешься через алиас БД? В databases.conf никакие параметры не переопределял?

P.S. UDF была однозначно кривой. За UDR не скажу от неё вроде как логах ничего не было, но и не факт что если что не так туда оно попадает.
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275671
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
db20mln,

ваша UDR тоже кривая.
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275673
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladНа что ???

он имеет ввиду новые внешние функции. Хотя я сильно сомневаюсь что он её правильно написал, ибо сложнее это чем Legacy UDF.
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275678
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисон имеет ввиду новые внешние функцииЯ значение букв UDR понимаю :) Но очень сильно сомневаюсь, что ТС имел в виду именно их.
Ставлю на PSQL ф-цию или встроенный хеш.
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275785
db20mln
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvladdb20mlnПришлось поставить DefaultDbCachePages = 640000а) накой назначать огромный кеш ВСЕМ БД ?
БД всего одна. При меньшем кеше скорость работы падает.

При работе воркеров они читают большую таблицу - но каждый свою часть данных. Т.е. кеш слишком быстро забивается и освобождается (воркеры запускаются 1500 - 3500 раз, но не более 40-60 одновременно).

Я прикинул что если при классике я ставил 16000 (выбрано после ряда экспериментов), то при 40 одновременных воркерах - это как раз 640000.

hvladб) FileSystemCacheThreshold отредактировал ?
Нет.
Подскажите пож-та какое значение установить.
Мануалы читал, но 2 недели этих проблем уже высушили мозг.

hvladdb20mlnЗаменил ее на udrНа что ???
udr.dll
У меня одна самописная внешняя функция - перед переходом с 2.5 на 3.0 реализовал ее в виде UDR.

hvladdb20mlnПосле чего вообще все упалоА до этого падало как-то иначе, не вообще ?
firebird.log во время падения что-то содержит, кроме INET ошибок ?

До этого клиентские приложения продолжали работать - т.е. я так думал, а после отправки поста понял, что скорее всего юзеры перезапустили прогу и благополучно продолжили работать.

При последнем падении было только то что выше писал
DBS Mon Jul 18 14:31:45 2016
Access violation.
The code attempted to access a virtual
address without privilege to do so.
This exception will cause the Firebird server
to terminate abnormally.


hvladПотому что ты отключил файловый кеш
Я понял что он отключился из-за FileSystemCacheThreshold, подскажите плз какое значение поставить.
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275792
db20mln
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисdb20mln,
а ты через новый fbclient работаешь или через тот что от 2.5 остался?
Подключаешься через алиас БД? В databases.conf никакие параметры не переопределял?

P.S. UDF была однозначно кривой. За UDR не скажу от неё вроде как логах ничего не было, но и не факт что если что не так туда оно попадает.
Через GDS32.dll.
databases.conf не трогал.

Я ночью запускал тестовый прогон - все прошло без сбоев, просто очень медленно (видимо отключился файловый кеш).
Раньше на классике - тоже иногда все проходило без сбоев, но чем больше данных запускаешь обрабатывать, тем больше шансов сбоя.

Ну и супер при сбое просто перезапускается и отрубаются все коннекты.
А классик - ну я писал в начале, другое поведение и другие ошибки в логе.

Симонов Денисdb20mln,
ваша UDR тоже кривая.
Даже если и так - как мне об этом узнать, если сообщений об ошибках нет?
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275796
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
db20mln,

больше чем DefaultDbCachePages. А вообще логика кажется странной. Почему требуется апдейтить хренову тучу строк? Это же порождает мусор и его сборку. Оно реально всё апдейтится или всё же часть апдейтов просто работают в холостую?
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275800
db20mln
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GDS32.dll - конечно же новый, который ставится тройкой.
Он и в C:\Windows\SysWOW64\ и в папке с приложением.
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275804
db20mln
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvladДля получения дампа в момент падения чти про WER (windows error reporting)
WER не был включен по умолчанию.
Сейчас включу, снова переключусь на СС и буду ждать сбой :(
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275815
db20mln
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисdb20mln,
больше чем DefaultDbCachePages. А вообще логика кажется странной. Почему требуется апдейтить хренову тучу строк? Это же порождает мусор и его сборку. Оно реально всё апдейтится или всё же часть апдейтов просто работают в холостую?
Это не лучшее решение, но оно было частью архитектуры и работало на 2.5.

Сейчас думаю как изменить эту части системы, чтобы радикально уменьшить кол-во апдейтов и инсертов.
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275821
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
db20mlnhvladа) накой назначать огромный кеш ВСЕМ БД ?БД всего однаНет. Есть ещё security database

db20mlnЯ прикинул что если при классике я ставил 16000 (выбрано после ряда экспериментов), то при 40 одновременных воркерах - это как раз 640000.Ну почему никто никогда не вспоминает про файловый кеш ???

db20mlnudr.dll
У меня одна самописная внешняя функция - перед переходом с 2.5 на 3.0 реализовал ее в виде UDR.Я правильно поинмаю, что была UDF, которая приводила к падениям, и вместо неё была написана UDR (что на порядок сложнее) ? А смысл где ?
db20mlnhvladПотому что ты отключил файловый кеш
Я понял что он отключился из-за FileSystemCacheThreshold, подскажите плз какое значение поставить.Уже написали - больше, чем кеш БД.
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275825
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
db20mlnПри меньшем кеше скорость работы падает.
А статистика работы кэша вообще собиралась или все изменения параметров проводятся
исключительно на "партийном чутье"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275827
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladЕсть ещё security database
Для которой в databases.conf гвоздиками прибито DefaultDbCachePages = 50.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275839
db20mln
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvladЯ правильно понимаю, что была UDF, которая приводила к падениям, и вместо неё была написана UDR (что на порядок сложнее) ? А смысл где ?

Нет.
Была UDF - 32 битная - в ней всего одна функция, она 4 года работала на FB 2.5, ошибок не выдавала.
Когда скомпилировали ее под 64 бита - подключить так и не получилось, выдавала ошибки (под 64 битной FB).

После выхода тройки решил сделать UDR чтобы перейти на 64 битную базу, пока делал - разобрался и с 64 битной версией UDF.
Т.е. по сути могу сейчас использовать и UDF, и UDR.

Ошибки UDF появились первый раз сегодня - при запуске в SS.
Поэтому я и переключился на UDR.
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275841
db20mln
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovА статистика работы кэша вообще собиралась или все изменения параметров проводятся
исключительно на "партийном чутье"?

Нет, не собиралась.
Все делалось замерами времени выполнения.
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275850
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
db20mln,

давай сюда код своей UDR/UDF вместе с объявлением метаданных.
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275861
db20mln
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисдавай сюда код своей UDR/UDF вместе с объявлением метаданных.
https://yadi.sk/d/khuy3SX4tQPXh
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275868
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
db20mln,

1. Надо память явно выделить, а не возвращать указатель на автоматическую переменную, неужели не ясно.
2. При чем - не просто выделить, а из менеджера памяти FB. Т.е. чз ib_util_malloc и объявить с FREE_IT. (в случае с SS можно иногда вывернуться через ThreadVar и не использовать ib_util_malloc/FREE_IT, но смысла я не вижу в подобных извращениях).
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275870
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
db20mln,

Пример:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
function ib_util_malloc( l: integer ): Pointer; cdecl; external 'ib_util.dll';

function MakeResultString( const Source: String ): PChar;
var
  Len: Integer;
begin
  Len := Length( Source );

  Result := ib_util_malloc( Len + 1 );

  if Len <> 0 then
    Move( PChar( Source )^, Result^, Len );

  Result[ Len ] := #0;
end;

function Left(sz: PChar; var Number: Integer): PChar; cdecl; export;
begin
  result := MakeResultString( Copy( String( sz ), 1, Number ) );
end;

exports Left;
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275872
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
* для тебя - PChar в PAnsiChar и String в AnsiString заменить надо будет наверно в моем коде.
...
Рейтинг: 0 / 0
Зависание базы - новые коннекты не реагируют, старые работают
    #39275883
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
db20mln,

UDF однозначно кривая. В UDR особых косяков не заметил.
...
Рейтинг: 0 / 0
25 сообщений из 103, страница 2 из 5
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Зависание базы - новые коннекты не реагируют, старые работают
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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