powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / rfunc загружает процессор. Базой не возможно пользоваться.
42 сообщений из 42, показаны все 2 страниц
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982433
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, ситуация плачевная.
Имеется сервер freebsd 6. На нем крутится база данных не большой АТС. (в базе несколько миллионов записей). Firebird 2.1. К Firebird прикручена библиотека rfunc. И это все хорошо работает.
Появилась нужда перенести все это добро на freebsd 9.3.
Установил, настроил, решил пересобрать базу на firebird 2.5, сделать, все хорошо без ошибок. Собрал библиотеку rfunc из исходников, положил в /usr/local/libexec/firebird/udf все как положено, все зависимости удовлетворены (ldd ./rfunc).
Подключаюсь программой из под windows к базе, все работает, функции использующие rfunc тоже работают. Но мать его базой почти не возможно пользоваться, при подключении к ней загрузка процессора на сервере увеличивается почти до 100%.

Делал то же самое и под UBUNTU, делал на разных версиях firebird, на виртуалках и на реальном сервере, та же беда, процессор вешается.... Может кто нибудь сталкивался с подобной катастрофой?
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982445
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099,

запросы без обращения к rfunc тоже грузят на 100%, или нет?
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982447
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099,

1. При чём тут rfunc ?
2. gstat -h что говорит ?
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982457
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv, без rfunc все отлично
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982463
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982470
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099,

похоже, это не тот gstat :-)

тебя спросили про вывод gstat -h база.fdb

собственно, если при вызове какой-либо даже простейшей функции из rfunc этот процесс начинает грузить ядро процессора на 100%, то это вопрос к конкретной версии ОС по поводу загрузки и вызовов внешних библиотек (so), с правильными ли опциями скомпилирован этот so, и кошерности скомпилированного под эту ОС Firebird.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982479
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099Собрал библиотеку rfunc из исходников
Взял её последние исходники? Хотя эта библиотека всегда была известна своими глюками...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982480
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,

нету такой опции -h
или я что то не то делаю.
Я пока что начинающий пользователь баз данных.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982484
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099Я пока что начинающий пользователь баз данных.
И вот так вот сходу решил переставить работающую систему не просто на другую платформу, но
ещё и на другую версию СУБД?.. Ню-ню...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982487
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
последние, версия rfunc-2.1.3.1-RC1
Вероятно что то не так собрал. не сильно разбираюсь, но зависимости удовлетворены....
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982489
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
нет. то сервер работает. я пока на тестовом пытаюсь.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982490
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

так уже давно существует альтернативная библиотека AUDFL . Потому как rfunc забросили.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982496
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

Под freebsd собирается?
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982504
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099последние, версия rfunc-2.1.3.1-RC1
УГ десятилетней давности. Без удачи и бубна в принципе неработоспособна. Полностью
заменяется на встроенные в 2.5 функции.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982526
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099,

95% функций rfunc можно смело выкинуть, так как есть встроенные. А часть функций там вообще бредовые.

Не компилил ничего под фрю. Учитывая, что эта ось официально не поддерживается FB, я бы вообще побоялся ставить на неё сервер.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982529
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
посоветуй ось для базы данных
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982531
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисэта ось официально не поддерживается FB
Энтузазизм Алекса, к сожалению, вернул её в список официально поддерживаемых. Но в данном
случае это пофиг, поскольку проблема не в сервере, а в левой библиотеке.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982535
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099,

если не нравится винда бери любой современный Linux (CentOS, Ubunta, RedHat, Debian ...).
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982539
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисborus099,

если не нравится винда бери любой современный Linux (CentOS, Ubunta, RedHat, Debian ...).
ТС в первом посте писал, что пробовал ubuntu с тем же результатом. Так что либо оставаться на старом софте, либо выбрасывать rfunc.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982541
Поручик ·· Ржевский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099kdv,

нету такой опции -h
или я что то не то делаю.
Я пока что начинающий пользователь баз данных.gstat пинай с указанием пути (к бинарникам firebird).
потому как у тебя там есть однофамилец gstat
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982752
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисDimitry Sibiryakov,

так уже давно существует альтернативная библиотека AUDFL . Потому как rfunc забросили.

Та же беда. Также процессор вешает. Подключал на UBUNTU 14.04
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982754
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvladborus099,

1. При чём тут rfunc ?
2. gstat -h что говорит ?
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982757
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvladborus099,

1. При чём тут rfunc ?
2. gstat -h что говорит ?

А на оригинально сервере вывод такой...
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982758
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099,

Включай трассировку и лови тот запрос который вешает базу. Сюда давай DDL участвующих таблиц, и объявление UDF.

P.S. прекратите выкладывать скрины. Текст из консоли без проблем можно скопировать.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982760
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисborus099,

Включай трассировку и лови тот запрос который вешает базу. Сюда давай DDL участвующих таблиц, и объявление UDF.

P.S. прекратите выкладывать скрины. Текст из консоли без проблем можно скопировать.

Как это сделать?
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982762
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099Как это сделать?
человек, считающий себя админом, никогда не задаст такой вопрос, ибо будет стыдно.
Я, наоборот, не понимаю, как можно не уметь скопировать текст из консольного вывода (или не уметь сделать вывод в текстовый файл, и т.д.).
Вы же там меняете FeedBSD 6 на 9, запускаете ФБ на всяких виндах, убунтах, и прочем, и не знаете, как сделать консольный вывод в текст???
Это как механик в автомастерской не в курсе, что такое гаечный ключ.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982763
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,
По поводу копирования текста и консоли я знаю что к чему. Вопрос "как это сделать" по поводу трассировки, так как с базами данных не имею большого опыта общения.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982764
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvчеловек, считающий себя админом, никогда не задаст такой вопросДумаю, borus099 про трассировку спрашивал :)
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982768
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099,

читай doc/README.trace_services
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982769
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099,

тогда ок, извиняюсь. используй fbtracemgr
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982773
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvborus099,

тогда ок, извиняюсь. используй fbtracemgr
Спасибо. Буду читать
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38983763
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эксперименты для локализации проблемы:

1) Нагрузка увеличивается СРАЗУ при подключении, даже без выполнения запросов?
2) Нагрузка заканчивается через какое-то время либо сваливается в бесконечный цикл?
3) Создать тестовую базу с одной таблицей и проверить функции rfunc на ней
4) Отследить, все ли внешние функции вешают процесс либо только определенные
5) Собрать тестовую udf и проверить, как работает она
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38984337
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099...
Имеется сервер freebsd 6. На нем крутится база данных не большой АТС. (в базе несколько миллионов записей). Firebird 2.1. К Firebird прикручена библиотека rfunc. И это все хорошо работает.
Появилась нужда перенести все это добро на freebsd 9.3.
Установил, настроил, решил пересобрать базу на firebird 2.5
...

Если вы не разработчик - не делайте так. Нельзя самовольно менять версию сервера.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992490
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fr0sT-Brutal,
Есть несколько программ написанных на DELPHI для роботы с данной базой. Все они замечательно работают, (в них не используется rfunc), но одна главная программа, в которой есть окошко в котором используется функция "FirstDayMonth" из rfunc, вот оно и вешает процесс. Нагрузка появляется сразу при открытии программы, затем когда данные загрузятся в это окошко, нагрузка на процессор пропадает, и так постоянно. При пролистывании списка абонентов данные должны обновляться в этом окне, они там обновляются но с опозданием и как раз в это время и вешается процессор.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992537
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099,

мало полезная функция. Легко заменяется на это

Код: sql
1.
2.
3.
4.
select
  current_timestamp,
  CAST('01.' || EXTRACT(MONTH FROM current_timestamp) || '.' || EXTRACT(YEAR FROM current_timestamp) AS DATE) AS FirstDay
from rdb$database
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992564
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099,

теоретизирую. функция fn_firstdaymonth вызывает isc_decode_date/isc_encode_date из клиентского API. Следовательно, если зависон происходит сразу при вызове хотя бы этой функции, то проблема именно в том, что через сервер происходит вызов клиентской библиотеки ФБ.
Т.е. что-то там у вас на FreeBSD криво скомпилировано.

borus099Нагрузка появляется сразу при открытии программы, затем когда данные загрузятся в это окошко, нагрузка на процессор пропадает, и так постоянно.
а может просто в приложении код такой, который долбит сервер чем-то таким, что в результате процесс сервера на 100% загружен. Бывает и такое. Что там делается с сервером, если нет исходников программы, можно посмотреть fbscanner-ом.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992581
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисЛегко заменяется на это
Код: sql
1.
CURENT_DATE-EXTRACT(DAY FROM CURRENT_DATE)+1

- проще, но исходников приложения
для замены у аффтара нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992618
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,
так в IBEXPERT выглядит процедура этого для окошка. тут есть R_FIRSTDAYMONTH
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
SET TERM ^ ;

CREATE OR ALTER PROCEDURE NARAH_TREE (
    data date,
    id_abon integer)
returns (
    period date,
    kod integer,
    text varchar(50),
    suma double precision,
    id_parent integer,
    n_tel char(11),
    id integer)
as
declare variable id_tel integer;
declare variable cnt integer;
begin
select max(R_FIRSTDAYMONTH(period)) from narah INTO :DATA;/
                 
select sum(suma) from narah where id_abon=:id_abon and period>=:data into :suma;
ID=:ID_ABON;
ID_PARENT =-1;
KOD=0;
PERIOD=:DATA;
TEXT=NULL;
SUSPEND;
FOR select t.id, t.n_tel
from telephones t
where t.id_abon=:ID_ABON
INTO :ID_TEL, :N_TEL
DO BEGIN
   KOD=1;
   TEXT='телефон '||:N_TEL;
   SUMA=NULL;
   ID_PARENT=:ID_ABON;
   ID=:ID_TEL;

   select count(*)
   from  narah n
   where n.id_tel=:ID_TEL
   and n.period>=:DATA
   into :cnt;

   if (:cnt>0) then SUSPEND;

   ID_PARENT=:ID_TEL;
   FOR select n.kod, n.period, n.suma, n.id , t.type_narah
   from  narah n, type_narah t
   where n.id_tel=:ID_TEL
   and n.kod=t.kod
   and n.period>=:DATA
   INTO :KOD, :PERIOD, :SUMA, :ID, :text DO SUSPEND;
END
FOR select l.id, 'линия '||l.punkt_1||' - '||l.punkt_2
from leaseds l
where l.id_abon=:ID_ABON
INTO :ID_TEL, :text
DO BEGIN
   KOD=7;
   SUMA=NULL;
   ID_PARENT=:ID_ABON;
   ID=:ID_TEL;
   N_TEL=:ID_TEL;

   select count(*)
   from  narah n
   where n.id_tel=:ID_TEL
   and n.period>=:DATA
   into :cnt;

   if (:cnt>0) then SUSPEND;

   ID_PARENT=:ID_TEL;
   FOR select n.kod, n.period, n.suma, n.id , t.type_narah
   from  narah n, type_narah t
   where n.id_tel=:ID_TEL
   and n.kod=t.kod
   and n.period>=:DATA
   INTO :KOD, :PERIOD, :SUMA, :ID, :text DO SUSPEND;
END
end^

SET TERM ; ^

/* Following GRANT statetements are generated automatically */

GRANT SELECT ON NARAH TO PROCEDURE NARAH_TREE;

/* Existing privileges on this procedure */

GRANT EXECUTE ON PROCEDURE NARAH_TREE TO SYSDBA;
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992625
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099,

заменить это
select max(R_FIRSTDAYMONTH(period)) from narah INTO :DATA;

на это
select period - extract(day from period)+1 from narah INTO :DATA;

собственно все.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992640
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevskyborus099,

заменить это
select max(R_FIRSTDAYMONTH(period)) from narah INTO :DATA;

на это
select period - extract(day from period)+1 from narah INTO :DATA;

собственно все.

точнее на это

Код: sql
1.
select max(period - extract(day from period)+1) from narah INTO :DATA;
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992644
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисточнее на этода проглядел, но я бы менял на

select max(period) from narah INTO :DATA;
DATA = DATA - extract(day from DATA)+1

при наличии убывающего индекса по period оно будет повеселей работать.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992660
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, Ivan_Pisarevsky
СПАСИБО ВАМ ОГРОМНОЕ. ВСЕ ЗАРАБОТАЛО ИДЕАЛЬНО. Я СЧАСТЛИВ.
...
Рейтинг: 0 / 0
42 сообщений из 42, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / rfunc загружает процессор. Базой не возможно пользоваться.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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