powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Поглощение памяти сервером
36 сообщений из 36, показаны все 2 страниц
Поглощение памяти сервером
    #40015153
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У заказчика идет выгрузка данных. После двух часов выгрузки я на клиенте получаю ошибки: вначале
unable to allocate memory from operating systemилиStack overflowа потом каскадAttempt to reopen an open cursorВ процессе выгрузки Firebird последовательно отжирает память до 10 гиг.

При этом у меня на сервере выгрузка из этой же базы занимает 30 минут, проходит без ошибок и Firebird потребляет памяти в пределах 500 мегабайт.

Куда копать? Сервер 3.0.6 SuperClassic. Конфиги идентичные и все параметры забиты дефолтными. Кроме установленного у заказчика RemoteAuxPort. Заказчик делал Backup/Restore. Не помогло.

Какие еще есть варианты? Обещают дать доступ к серверу. Что посмотреть?


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

Для начала обновиться до 3.0.7
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015163
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Сервер 3.0.6 SuperClassic
А зачем такой странный выбор (подчёркнуто мною) для тройки?
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015168
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
Для начала обновиться до 3.0.7
Это хорошо, Но на моем стенде тоже 3.0.6. И не жалуется
Basil A. Sidorov
А зачем такой странный выбор
Недочитал what's new доки
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015174
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

когфиги сравни, у них небось DefaultDbCachePages задан, как для супера
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015175
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
Для начала обновиться до 3.0.7
В обязательном порядке, независимо от всего остального.
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015176
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
когфиги сравни
_Vasilisk_
Конфиги идентичные и все параметры забиты дефолтными
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015178
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

тогда посмотри размер кеша в самой БД.

unable to allocate memory from operating system - однозначно обожрались памятью.
Ищи причину.
Не верь ничему и никому, проверяй всё сам.
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015181
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_> Конфиги идентичные и все параметры забиты дефолтными

Так поставь не дефолтные (и им подскажи).

P.S. А у них БД тоже пухнет или только out of memory?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015185
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,

UDF используются?
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015195
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_После двух часов выгрузки я на клиенте получаю ошибки
для выгрузки используется кэширующий датасет? ну, поздравляю.
_Vasilisk_В процессе выгрузки Firebird последовательно отжирает память до 10 гиг.
прямо процесс firebird.exe отжирает?
_Vasilisk_ у меня на сервере выгрузка из этой же базы
из абсолютно этой же? с теми же параметрами выгрузки, абсолютно идентичным запросом?
И конфиг ФБ одинаковый?
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015200
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory
UDF используются?
В базе да. Конкретно для этой выгрузки вроде нет. Версии у заказчика и у меня идентичны
kdv
для выгрузки используется кэширующий датасет
Да. Но память жрет не датасет
kdv
прямо процесс firebird.exe отжирает?
Именно.
kdv
из абсолютно этой же? с теми же параметрами выгрузки, абсолютно идентичным запросом?
И конфиг ФБ одинаковый?
Абсолютно. Базу забекапили и прислали. Конфиги также идентичны

Сейчас у заказчика поставил 3.0.7 и перевел в SuperServer. Картина не изменилась
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015202
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чарсет подключения прибит гвоздиком в приложении или настраивается где-то?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015203
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
Не верь ничему и никому, проверяй всё сам.
Вот сейчас сам проверяю
Гаджимурадов Рустам
Так поставь не дефолтные
Зачем? У меня на дефолтных все отлично работает
Гаджимурадов Рустам
А у них БД тоже пухнет
Нет. 3.3 гига, как после рестора
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015204
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Чарсет подключения прибит гвоздиком
Прибит. Win1251
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015205
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

клиенты одинаковые ? Я про приложение и то, через что оно ходит к серверу.
Стейтменты\тр-ции не утекают ? Должно быть видно в мониторинге.
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015211
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
клиенты одинаковые ?
Приложение да. fbclient поставил от 3.0.7
hvlad
Стейтменты\тр-ции не утекают ? Должно быть видно в мониторинге.
Стабильны На всю базу 8 транзакций, 19 стейтментов
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015216
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
select
    sum(MON$MEMORY_USED),
    sum(MON$MEMORY_ALLOCATED),
    sum(MON$MAX_MEMORY_USED),
    sum(MON$MAX_MEMORY_ALLOCATED)
from
  mon$memory_usage

sum(MON$MAX_MEMORY_USED) растет. Остальное стабильно
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015229
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще текут дескрипторы. Сейчас утекло 48 000
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015230
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015233
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
А еще текут дескрипторы. Сейчас утекло 48 000
Это уже хоть что-то. БД и приложение предоставить можешь ?
И - еще раз - текут только на сервере, не на твоей машине ?
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015234
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Какие именно дескрипторы - можешь найти ?
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015242
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
Какие именно дескрипторы - можешь найти ?
Нашел. И заразу нашел. UDF, которая из Active Directory тащила полное имя пользователя.

Дескрипторы были от загрузки файла activeds.tlb
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015247
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

вот и прекрасно :)
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015250
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_UDF, которая из Active Directory тащила полное имя пользователя.

Чисто из любопытства: в каком месте экспорта она вызывалась?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015267
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Чисто из любопытства: в каком месте экспорта она вызывалась?
В селекте. Уже осознал свою ошибку
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015469
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_> В селекте. Уже осознал свою ошибку

Странно, что на твоей машине не текли. :)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015488
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Странно, что на твоей машине не текли. :)
У меня домен другой и этих пользователей не было. Да и структура домена сильно проще.

Пока вызов убрал вообще, а как разберусь с проблемой напишу сюда где была ошибка
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015492
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_> Пока вызов убрал вообще

Перенести вызов в начало скрипта 1 раз недостаточно?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40015494
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Перенести вызов в начало скрипта 1 раз недостаточно?
Нет. Пользователи могут быть разные. Но вызвать один раз в начале скрипта для всех пользователей нужно. Ну и утечку нужно таки найти
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40016023
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
как разберусь с проблемой напишу сюда где была ошибка
Разобрался.

Есть у меня такой класс
Код: pascal
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.
type
  TUserInfo = class
  strict private
    FSIDStr: string;
    FADsUser: IADsUser;
  strict private
    function GetADsUser: IADsUser;
  public
    constructor Create(const ASIDStr: string);
  end;

constructor TUserInfo.Create(const ASIDStr: string);
begin
  inherited Create;
  FSIDStr := ASIDStr;
end;

function TUserInfo.GetADsUser: IADsUser;
begin
  if FADsUser = nil then begin
    OleCheck(ADsGetObject(
      PChar(Format('LDAP://<SID=%s>', [FSIDStr])),
      IID_IADsUser,
      FADsUser
    ));
    FADsUser.GetInfo;
  end;
  Result := FADsUser;
end;

класс оттестирован и работает.

Для работы с UDF написал наследника
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
type
  TUDFUserInfo = class(TUserInfo)
  public
    constructor Create(const ASIDStr: string);
    destructor Destroy; override;
  end;

constructor TUDFUserInfo.Create(const ASIDStr: string);
begin
  inherited Create(ASIDStr);
  Coinitialize(nil);
end;

destructor TUDFUserInfo.Destroy;
begin
  СoUninitialize;
  inherited Destroy;
end;

Теперь что получалось: в деструкторе TUDFUserInfo вызывался СoUninitialize, а потом при финализации полей класса пытался уничтожиться FADsUser и возникал AV. Отсюда и все утечки.

Что сделал:
в деструкторе TUserInfo явно прибил FADsUser, а в деструкторе TUDFUserInfo перенес вызов СoUninitialize после вызова родительского деструктора
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
destructor TUserInfo.Destroy;
begin
  FADsUser := nil;
  inherited Destroy;
end;

destructor TUDFUserInfo.Destroy;
begin
  inherited Destroy;
  СoUninitialize;
end;


Почему работало у меня? Потому что домен другой, пользователей с такими SID нет и объект FADsUser не создавался.

Остался у меня вопрос как я эту ошибку пропустил, когда тестировал саму UDF, но на этот вопрос уже никто не ответит
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40016025
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А AV тупо съедалась что ли, даже не логировалась никуда?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40016033
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
AV тупо съедалась
Да
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40016062
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Остался у меня вопрос как я эту ошибку пропустил

А у меня остался вопрос зачем вообще CoUninitialize в деструкторе, а не finalization.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40016110
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
А у меня остался вопрос зачем вообще CoUninitialize в деструкторе, а не finalization.
Потому, что это UDF и функция может вызываться в произвольных потоках. Поэтому Coinitialize/CoUnititialize дергаются на каждый вызов функции
...
Рейтинг: 0 / 0
Поглощение памяти сервером
    #40016140
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно. Почему-то мне казалось, что они на процесс...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Поглощение памяти сервером
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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