powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
18 сообщений из 18, страница 1 из 1
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38846906
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

В общем, не хочу в Новый Год заходить с "незавершенным производством". Тем более, что оно примерно 2 месяца как завершено.

Публикую тест, о котором говорил на Конференции-2014 в Праге (презентуха его - тут ).
Его идеи "основаны на реальных событиях, все сходства носят случайный характер и непреднамеренны".

Тынц на src: svn checkout svn://svn.code.sf.net/p/firebird/code/qa/oltp-emul/ .

Тынц на zip: https://yadi.sk/d/Sgf13019dSWbh (содержит добавку: небольшой .ppt, показывающий масштабируемость ФБ-3.0, FW = ON vs OFF, для нагрузок от 150 до 300 аттачей с шагом 25).

Работа клиентской части (батники и .sh-скрипты) проверена на Windows (2000, 2003, XP) и Linux (RH, Debian).
Предназначен для имитации нагрузки произвольной тяжести на ФБ 2.5.3 и 3.0.
Имеется quick-start (english) и подробное описание бизнес-логики, алгоритмов, таблиц и прочего (в виде .html, на русском).
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38846962
shiliaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблоид, спасибо, очень интересно.
Я сам давно хотел сделать что то подобное (попроще и пониже, конечно).
Всего самого хорошего в наступающем НГ!
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38849398
День добрый!

Объем проделанной работы (а особливо, количество выявленных CORE) внушает уважение. Единственное, вопрос - не проще ли было вместо bat и bash написать на каком-нибудь скриптовом языке? Bash еще ничего, но вот bat такой сложности - уже магия. Понятно, что работает везде, но и Perl/Python установить не проблема.
Есть подозрение, что отказавшись от вызова isql можно было бы создать более высокую нагрузку на FB. Я когда-то свой примитивный тестер писал - сделал внутренним скриптовым микро-языком с предварительным разбором, в итоге каждый коннект висел в своем потоке, а не процессе (2 CORE, связанных с высокой нагрузкой, удалось воспроизвести).
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38849421
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кузнецов ЕвгенийPerl/Python установить не проблема.
Проблема. Лично мне понадобилось несколько дней, чтобы найти дистр перла для винды,
который бы просто заработал. А с учётом того, что драйвера к Firebird для скриптовых
языков имеют тенденцию быть исключительно проктостоматологическим набором костылей и
прокладок, данный путь вообще выглядит полным бесперспективняком, пройти который могут
только особо упёртые фанаты.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38849429
Dimitry SibiryakovПроблема. Лично мне понадобилось несколько дней, чтобы найти дистр перла для винды,
который бы просто заработал.
Работал немного с ActivePerl, таких проблем не встречал. По запросу "perl windows" третья ссылка в google.

А с учётом того, что драйвера к Firebird для скриптовых
языков имеют тенденцию быть исключительно проктостоматологическим набором костылей и
прокладок, данный путь вообще выглядит полным бесперспективняком, пройти который могут
только особо упёртые фанаты.
Ну во-первых, можно использовать хотя бы для вызова isql, хоть читаемость возрастет.
Во-вторых, я уже давно не в теме, но раньше QA в Firebird на Python вроде бы вертелся.
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38849439
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кузнецов Евгенийраньше QA в Firebird на Python вроде бы вертелся.

Раньше он вертелся как раз на bat+isql. Потом его фанат питона по фамилии Цезарь переделал
на пиотон. Правда, при этом он написал свой собственный драйвер, так что теперь, получив
обломавшийся тест, приходится гадать где же именно баг: в Firebird, драйвере или самом тесте.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38849517
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кузнецов Евгенийне проще ли было вместо bat и bash написать на каком-нибудь скриптовом языке? Bash еще ничего, но вот bat такой сложности - уже магия. Понятно, что работает везде, но и Perl/Python установить не проблема.у мну изначально был соблазн лезть в базу через jdbc. Но, по итогам переписки с Источником Света, было решено делать всё только на стандартном минимуме, который гарантированно есть везде, то бишь на isql. Ибо яву - её ведь тоже надо ставить.

Кузнецов ЕвгенийЕсть подозрение, что отказавшись от вызова isql можно было бы создать более высокую нагрузку на FB.Я пока не сравнивал. В нынешнем наборе FB-расширений SQL одной штуки зело не хватает: невозможно сделать что-то типа 'goto :start_label', чтобы ISQL не делал переконнект. Поэтому приходится делать идиотизм: размножать EB + commit'ы, чтобы одиночный коннект делал побольше работы, прежде чем завершиться.

Кузнецов ЕвгенийЯ когда-то свой примитивный тестер писал - сделал внутренним скриптовым микро-языком с предварительным разбором, в итоге каждый коннект висел в своем потоке, а не процессе (2 CORE, связанных с высокой нагрузкой, удалось воспроизвести).Недавно поигрался с JayBird и apache dbcp. Получилось через пул коннектов какой-то примитив проверить, и даже выставить нужный мне TIL (там по дефолту - rc wait ; поменять его на ФБшный no_wait оказалось не так просто :)). Но этот тест не проверял, конечно.
Если в будущем удастся убедить Межгалактический ФБ-Комитет в необходимости сделать прототип web-приложения с уже имеющейся DDL-основной, то с удовольствием поиздеваюсь (еще и над JayBird'ом :)).
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38852995
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Под виндами есть busybox, который включает и bash, и прочие утилиты - можно отказаться от batch-ей.
В нынешнем наборе FB-расширений SQL одной штуки зело не хватает: невозможно сделать что-то типа 'goto :start_label', чтобы ISQL не делал переконнект.
Поясни?
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38853004
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalПод виндами есть busybox, который включает и bashпод виндами есть повершел.
впрчем, если речь о совместимости с линуховым башем, то конечно повершел не поможет.
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38853085
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalПод виндами есть busybox, который включает и bash, и прочие утилиты - можно отказаться от batch-ей.Насколько этот бузибокс или powershell сложны в освоении ? я их никогда не пробовал, не хотелось бы много времени тратить еще и на это, плюс на обход каких-нибудь граблей, которые там наверняка есть.
Да и вообще непонятно: какая хрен разница, как реализован скрипт ? Работает ? Ну так запускайте и не парьтесь, батник там или еще чего.

Fr0sT-BrutalВ нынешнем наборе FB-расширений SQL одной штуки зело не хватает: невозможно сделать что-то типа 'goto :start_label', чтобы ISQL не делал переконнект.Поясни?Создай execute block, сделай в нём какую-нибудь работку. Сделай коммит после него. А теперь повтори то же самое, только без переконнекта.
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38853435
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
roadsterпод виндами есть повершел.
Который опять же надо ставить

авторНасколько этот бузибокс или powershell сложны в освоении ? я их никогда не пробовал, не хотелось бы много времени тратить еще и на это, плюс на обход каких-нибудь граблей, которые там наверняка есть.
Да и вообще непонятно: какая хрен разница, как реализован скрипт ? Работает ? Ну так запускайте и не парьтесь, батник там или еще чего.
Бузибокс - "мини-юникс" в одном экзешнике. Насколько обрезанный - хз, надо проверять. Советовал только потому, что потенциально можно добавить один бинарник и сразу убрать вторую кодовую ветку.
авторСоздай execute block, сделай в нём какую-нибудь работку. Сделай коммит после него. А теперь повтори то же самое, только без переконнекта.
Код: sql
1.
2.
3.
4.
5.
== worker.bat ==
@echo off
type execute_block.sql
type execute_block.sql
echo QUIT;



Код: sql
1.
2.
== launch.bat ==
worker.bat | isql.exe -q -u %User% -p %Pass%
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38853438
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извини, что в цитатах не указан ник, здешний убогий механизм цитирования меня зверски вымораживает
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38853457
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutalroadsterпод виндами есть повершел.
Который опять же надо ставить

угу,на Windows XP. C остальными уже в комплекте идет.
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38853545
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalавторСоздай execute block, сделай в нём какую-нибудь работку. Сделай коммит после него. А теперь повтори то же самое, только без переконнекта.
Код: sql
1.
2.
3.
4.
5.
== worker.bat ==
@echo off
type execute_block.sql
type execute_block.sql
echo QUIT;

Код: sql
1.
2.
== launch.bat ==
worker.bat | isql.exe -q -u %User% -p %Pass%

Не понял я тут. Ты два раза просто выводишь на консоль и тут же переадресуешь в isql файл - и что ? это просто копипаст жестко прошитого в 'execute_block.sql' текста
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38853752
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидНасколько этот бузибокс или powershell сложны в освоении ?бузи бокс скорее всего эмулирует баш, хотя сам я с этим не сталкивался, а повершел он как баш только виндовый, мощное средство, но осваивать его придётся прилично, как по мне так админу виндовых серваков стоит освоить, иначе смысла особого нет.
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38853806
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ТаблоидНе понял я тут. Ты два раза просто выводишь на консоль и тут же переадресуешь в isql файл - и что ? это просто копипаст жестко прошитого в 'execute_block.sql' текста
Оно делает в точности то, что ты сказал
Создай execute block, сделай в нём какую-нибудь работку. Сделай коммит после него. А теперь повтори то же самое, только без переконнекта.
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38854723
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalОно делает в точности то, что ты сказалХм... интересное решение, спс.
Единственное "но": такой батник почему-то невозможно прервать по Упр-Це.

Я делал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
-- file = ` job4loop.sql `
set echo on;
set term ^;
execute block returns(p int, c int, t int) as
begin
  select a.mon$server_pid, current_connection, current_transaction
  from mon$attachments a
  where a.mon$attachment_id = current_connection
  into p, c, t;
  suspend;
end
^ set term ;^
commit;

Код: plaintext
1.
2.
3.
4.
5.
6.
@rem aux. batch = ` joblooper.bat `
@echo off
echo connect 'localhost/3333:C:\1INSTALL\FIREBIRD\FB30SNAP\TMP.FDB';
:m1
  type e1.sql
  ping -n 3 127.0.0.1 > nul
goto m1

Код: plaintext
1.
@rem main batch = ` jobloopgo.bat ` 
joblooper.bat | isql -q

Всё вроде фурычит, только при попытке оборвать батник получаем:
Код: plaintext
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.
. . .
end
^ set term ;^

           P            C            T
============ ============ ============
        1180          102          429

commit;
set echo on;
set term ^;
execute block returns(p int, c int, t int) as
begin
  select a.mon$server_pid, current_connection, current_transaction
  from mon$attachments a
  where a.mon$attachment_id = current_connection
  into p, c, t;
  suspend;
end
^ set term ;^

           P            C            T
============ ============ ============
        1180          102          431

commit;
^C^CПопытка записи в несуществующий канал.
^CПопытка записи в несуществующий канал.
Попытка записи в несуществующий канал.
^C^CПопытка записи в несуществующий канал.
Попытка записи в несуществующий канал.
Попытка записи в несуществующий канал.
Попытка записи в несуществующий канал.
Попытка записи в несуществующий канал.
Попытка записи в несуществующий канал.
Попытка записи в несуществующий канал.
Попытка записи в несуществующий канал.
А при закрытии окошка "крестиком" в логе ФБ будет:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
BALAHA  Thu Jan 15 00:28:05 2015
        INET/inet_error: read errno = 10054


BALAHA  Thu Jan 15 00:32:46 2015
        INET/inet_error: send errno = 10093


BALAHA  Thu Jan 15 00:32:46 2015
        REMOTE INTERFACE/gds__detach: Unsuccesful detach from database.
        Uncommitted work may have been lost.
         Error writing data to the connection. 
...
Рейтинг: 0 / 0
Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
    #38854893
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Со срубанием да, могут быть сложности, но закрытие окна же в принципе работает как ожидалось. В любом случае, это самый удобный способ скриптованного управления isql-ем.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Тест для имитации OLTP: заказы / приходы / резервы / отгрузка / оплаты / остатки / отмены
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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