Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как включить WireCompression на клиентах? / 23 сообщений из 23, страница 1 из 1
15.02.2017, 09:10
    #39404586
Как включить WireCompression на клиентах?
Добрый день

Хочу для части клиентов включить сжатие данных.

В Release Notes написано:

To activate Wirecompression from the client side, pass the appropriate tag in the config item of the DPB
or SPB call:
isc_dbp_config/isc_sbp_config <string-length> "WireCompression=true"

Подскажите, пожалуйста,
если в firebird.conf на клиенте добавить WireCompression = True будет работать сжатие или нужно в компонентах доступа к данным передавать этот параметр во время коннекта?
...
Рейтинг: 0 / 0
15.02.2017, 09:41
    #39404594
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить WireCompression на клиентах?
вроде должно работать. Проверить было бы быстрее, чем сюда писать :-) Только не забудь скопировать zlib1.dll в папку клиента.
...
Рейтинг: 0 / 0
15.02.2017, 09:49
    #39404597
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить WireCompression на клиентах?
к вопросу "как проверить". Либо запустить с клиента ISQL, подключиться к базе на сервере и запросить show version. Либо с клиента прочитать MON$REMOTE_VERSION из MON$ATTACHMENTS для своего коннекта. В обоих случаях посмотреть на версию сетевого протокола, там будет PNN[:XY], где NN - версия протокола, а опциональные XY - флаги 'C' при включенном шифровании и 'Z' при включенном сжатии. Т.е., например, P13:Z означает включенное сжатие.
...
Рейтинг: 0 / 0
15.02.2017, 10:59
    #39404665
Как включить WireCompression на клиентах?
dimitr,
Сервер 64 бита
Проверяю в RDP сеансе на сервере
автор ISQL show version показывает P14:C - все отлично.

1. Подключаюсь к базе в IbExpert (указываю в настройке подключения fbclient.dll)
Версия протокола P14
2. Рядом с IbExpert кладу fbclient.dll, zlib1.dll (оба из дистрибутива 32 битного сервера) а потом еще и firebird.conf, в настройке подключения указываю полный путь до fbclient.dll
Версия протокола всегда P14
...
Рейтинг: 0 / 0
15.02.2017, 11:13
    #39404679
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить WireCompression на клиентах?
Вадим Мещеряков,

какая строка коннекта в IBE ?
...
Рейтинг: 0 / 0
15.02.2017, 11:21
    #39404689
Как включить WireCompression на клиентах?
hvladкакая строка коннекта в IBE ?

В IbExpert отображается такая строка: LOCALHOST/3050:G:\DelFin\Db\BASE.FDB
...
Рейтинг: 0 / 0
15.02.2017, 11:22
    #39404690
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить WireCompression на клиентах?
Вадим Мещеряковпоказывает P14:C - все отлично
это включено шифрование, а не сжатие. Что же тут отличного?
...
Рейтинг: 0 / 0
15.02.2017, 11:25
    #39404694
Как включить WireCompression на клиентах?
dimitrэто включено шифрование, а не сжатие. Что же тут отличного?
Наврал там было /P14:CZ
...
Рейтинг: 0 / 0
15.02.2017, 11:27
    #39404695
Как включить WireCompression на клиентах?
Вадим Мещеряков,

ISQL Version: WI-V3.0.1.32609 Firebird 3.0
Server version:
Firebird/Windows/AMD/Intel/x64 (access method), version "WI-V3.0.1.32609 Firebird 3.0"
Firebird/Windows/AMD/Intel/x64 (remote server), version "WI-V3.0.1.32609 Firebird 3.0/tcp (SRV-DELFIN)/P14:CZ"
Firebird/Windows/AMD/Intel/x64 (remote interface), version "WI-V3.0.1.32609 Firebird 3.0/tcp (SRV-DELFIN)/P14:CZ"
...
Рейтинг: 0 / 0
15.02.2017, 13:33
    #39404871
Как включить WireCompression на клиентах?
dimitrк вопросу "как проверить". Либо запустить с клиента ISQL, подключиться к базе на сервере и запросить show version. Либо с клиента прочитать MON$REMOTE_VERSION из MON$ATTACHMENTS для своего коннекта

Странные вещи
ISQL show version показывает /P14:CZ

В тестовом приложении (с FireDAC) показывает

Server version = WI-V3.0.1.32609 Firebird 3.0
WI-V3.0.1.32609 Firebird 3.0/tcp (SRV-DELFIN)/P14:CZ
WI-V3.0.1.32609 Firebird 3.0/tcp (promservice001)/P14:CZ

А в MON$ATTACHMENTS.MON$REMOTE_VERSION показывает для этих же подключений P14

Как модно понять работает сжатие или нет?
...
Рейтинг: 0 / 0
15.02.2017, 14:31
    #39404941
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить WireCompression на клиентах?
Вадим Мещеряков, WireShark ?
...
Рейтинг: 0 / 0
15.02.2017, 14:52
    #39404965
Как включить WireCompression на клиентах?
rdb_dev WireShark ?
Это понятно что можно трафик смотреть, но хлопотно.

Если рядом с моим тестовым приложением и fbclient.dll лежит firebird.conf то можно включить сжатие изменением параметра в этом файле. Отключить шифрование изменением параметра в этом же файле не получается
...
Рейтинг: 0 / 0
16.02.2017, 17:43
    #39406005
Как включить WireCompression на клиентах?
rdb_dev,

Провел эксперимент
Установил на сервере WireShark
Поставил фильтр от сервера к клиенту
Сложил fbclient.dll, zlib1.dll,firebird.conf в каталог с IbExpert. Запустил из жтого каталога тестовую программу (FireDAC) показала P14:CZ
Запустил IbExpert (явно указал где ему взять fbclient.dll)
Cделал выборку с полным фетч 10000 записей с включенным в файле firebird.conf WireCompress и с выключенным
Примерно одинаковое количество пакетов 210
Одинаковый суммарный объем пакетов 760000 байт

Не работает сжатие?
Как его все таки запустить?
...
Рейтинг: 0 / 0
16.02.2017, 17:50
    #39406019
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить WireCompression на клиентах?
Вадим МещеряковСложил fbclient.dll, zlib1.dll,firebird.conf в каталог с IbExpert.
...
Запустил IbExpert (явно указал где ему взять fbclient.dll)Где-то тут кто-то ошибся. И - зачем делать первое, при наличии второго ?

Возьми Process Explorer и проверь - какую версию fbclient на самом деле использует IBE, и загружает ли он при этом zlib1
...
Рейтинг: 0 / 0
16.02.2017, 20:10
    #39406136
Как включить WireCompression на клиентах?
hvladГде-то тут кто-то ошибся

Так и есть!
Все отлично работает!

Для включения сжатия нужно положить firebird.conf (WireCompression = true) и zlib1.dll рядом c fbclient.dll. и Все.
Результат в нашем приложении (анализировал трафик от сервера к клиенту) - в 3 раза меньше пакетов а общий размер пакетов меньше в 10 раз.

Спасибо за помощь.
...
Рейтинг: 0 / 0
16.02.2017, 21:53
    #39406178
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить WireCompression на клиентах?
Вадим Мещеряков,

вот и прекрасно :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
12.02.2019, 18:52
    #39773014
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить WireCompression на клиентах?
Апну старый топик, тоже решил научиться компрессовать трафик.
беру ISQL вроде бы вижу вожделенные буковки "P15:Z"
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SQL> show version;
ISQL Version: LI-V3.0.5.33100 Firebird 3.0
Server version:
Firebird/Linux/AMD/Intel/x64 (access method), version "LI-V3.0.5.33100 Firebird 3.0"
Firebird/Linux/AMD/Intel/x64 (remote server), version "LI-V3.0.5.33100 Firebird 3.0/tcp (linux-ivan32)/P15:Z"
Firebird/Linux/AMD/Intel/x64 (remote interface), version "LI-V3.0.5.33100 Firebird 3.0/tcp (linux-ivan32)/P15:Z"
on disk structure version 12.0
SQL> select MON$REMOTE_VERSION from MON$attachments;

MON$REMOTE_VERSION                                                                                                                                                                                                                                              
=============================================================================== 
<null>                                                                                                                                                                                                                                                          
<null>                                                                                                                                                                                                                                                          
P15                                                                                                                                                                                                                                                             
P15                                                                                                                                                                                                                                                             
P15                                                                                                                                                                                                                                                             
P15                                                                                                                                                                                                                                                             

SQL> 

dimitrЛибо с клиента прочитать MON$REMOTE_VERSION из MON$ATTACHMENTS для своего коннекта.А вот тут буковок не вижу, см. выше выхлоп ISQL.

Кому верить?

да, среди 4 конектов из атачмента есть виндовый, мой виндовый клиент подхватил троешного ФБ клиента, а тот в свою очередь прихватил zlib1.dll (судя по процесс эксплореру).
...
Рейтинг: 0 / 0
12.02.2019, 19:46
    #39773035
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить WireCompression на клиентах?
Ivan_Pisarevsky,

там и не должно быть.
В 4.0 появились отдельные поля MON$WIRE_COMPRESSED и MON$WIRE_ENCRYPTED
...
Рейтинг: 0 / 0
13.05.2019, 14:29
    #39812529
vvvait
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить WireCompression на клиентах?
Подскажите, получается что сжатие данных бессмысленно на каналах с большими задержками (100-150 мс). т.к. судя по wireshark 90% пакетов идёт размером 50-80 байт, данных в которых от 9 до 40 байт, вместо 16-64 байт без сжатия.
Может можно какими-либо настройками уменьшить кол-во пакетов?
...
Рейтинг: 0 / 0
13.05.2019, 15:02
    #39812551
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить WireCompression на клиентах?
vvvaitПодскажите, получается что сжатие данных бессмысленно на каналах с большими задержками

не то чтобы бессмысленно, но помогает мало.

Одна из настроек которая может повлиять TcpRemoteBufferSize.
Но лучше всего прошерстить код приложения, чтобы метаданные лишний раз не запрашивались, использовались препарированные запросы, в запросах лишние поля не таскать, чтобы блобы не грузились когда не надо. Можно всяческое кеширование включать, чтобы повторно не таскать
...
Рейтинг: 0 / 0
13.05.2019, 15:10
    #39812558
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить WireCompression на клиентах?
vvvaitМожет можно какими-либо настройками уменьшить кол-во пакетов?Нет таких настроек.
Нужно убедиться, что версия клиента не ниже 2.5.
Про сервер ниже 2.5 даже не говорю.
Если всё так и есть - остаётся только оптимизирвать приложение.
...
Рейтинг: 0 / 0
13.05.2019, 15:32
    #39812570
vvvait
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить WireCompression на клиентах?
я эти данные для бакапа метаданных привёл, gbak я оптимизировать наверно не могу
...
Рейтинг: 0 / 0
13.05.2019, 16:13
    #39812593
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить WireCompression на клиентах?
vvvait,

есть много способов сделать бекап. В том числе когда клиент и сервер на разных хостах.

Если файл бекапа не нужен на клиенте, то следует вызвать gbak через сервисы, далее как обычно

gbak -se server:service_mgr -b -g path.fdb backup.fbk

тут оба пути локальны на сервере server


Если файл бекапа нужен на клиенте, то следует воспользоваться фичей CORE-2666

как пользоваться - см README.services_extension
4) Services API extension - running gbak at server side with .fbk at the client.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как включить WireCompression на клиентах? / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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