powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / firebird IOPS
20 сообщений из 20, страница 1 из 1
firebird IOPS
    #39564610
firebird_iops
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация следующая, имеется сервер и база firebird на нем, но база не использует все имеющиеся ресурсы.

СХД выдает 30k IOPS, профиль нагрузки 100% запить, блок 8k, случайная нагрузка. Это максимальные данные, полученные IOMeter.

Память и CPU не используются и на 20%.

Рабочую базу не трогаем, рядом создаем аналогичную среду, равную боевой.

Дальше, учитываем, что я работаю с Firebird ровно один день. Создаю через iSQL базу данных Firebird. Настраиваю утилиту нагрузочного тестирования JMeter со следующей задачей, сессии делают insert into table1..10 values (1, 'name'). То есть каждая сессия делает вставку в 10 таблиц.

Запускаем нагрузка, процессор и память также не полностью используются, как на бою. IOPS выдается всего 2500.

Игры с настройками JMeter не приводят к увеличению числа IOPS. Можно запускать 10 или 60 параллельных запросов, число IOPS не меняется.

Предварительный вывод, БД упирается во внутренний механизм и не в состоянии выжать больше 2500 IOPS.

Чтобы подтвердить вывод, создаю еще одну такую же БД и запускаю сразу 2 нагрузочных теста jMeter. Число IOPS возрастает до 5000.

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

Сразу скажу, я админ Оракл и с FB столкнулся впервые и то потому, что служба сопровождения FB считает, что у компании проблемы с СХД, а база настроена корректна.
...
Рейтинг: 0 / 0
firebird IOPS
    #39564620
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firebird_iopsПамять и CPU не используются и на 20%.
firebird_iopsбаза настроена корректна.Что скрывается под термином "корректна"?
...
Рейтинг: 0 / 0
firebird IOPS
    #39564621
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.12.2017 17:57, firebird_iops пишет:
> Ситуация следующая, имеется сервер и база firebird на нем

никому не говори номер версии и платформу.
соблюдай интригу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
firebird IOPS
    #39564629
firebird_iops
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_PisarevskyЧто скрывается под термином "корректна"?

Компания, сопровождающая ПО на Firebird считает нашу базу корректно настроенной. А то, что рост очереди запросов превышает скорость их обработки базой происходит из-за медленной работы СХД

никому не говори номер версии и платформу.
соблюдай интригу.

Red database 2.6,
...
Рейтинг: 0 / 0
firebird IOPS
    #39564635
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.12.2017 18:08, firebird_iops пишет:
>
> Red database 2.6

в саппорт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
firebird IOPS
    #39564638
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firebird_iops,

потому что вы лабуду тестируете. У вас параллельная вставка данных скорее всего упирается в блокировку одной страницы (таблицы, куда параллельно вставляются данные), поэтому никакой параллельности не выходит.
firebird_iopsВопрос, почему база данных не способна нагрузить диск, во что она упирается.
указал выше, во что упирается. Вы что хотите получить? Загрузку диска для однопользовательского режима, или для 200 пользователей, только для insert, или select/insert/update/delete, или что?

IOMeter, кстати, если показывает 30к иопсов, то это макс. предел дисковой подсистемы, голый, там тупо запись пустых страниц идет, которые никак не связаны между собой.
В любой базе страницы связаны между собой разным образом, пишутся в разных порядках, и т.д. Поэтому реальная СУБД будет медленнее IOmeter.
...
Рейтинг: 0 / 0
firebird IOPS
    #39564646
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пусть каждая сессия пишет в свою таблицу - тогда есть шанс нагрузить по максимуму. Иначе будете мерять все что угодно, кроме диска.
...
Рейтинг: 0 / 0
firebird IOPS
    #39564836
firebird_iops
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvfirebird_iops,

потому что вы лабуду тестируете. У вас параллельная вставка данных скорее всего упирается в блокировку одной страницы (таблицы, куда параллельно вставляются данные), поэтому никакой параллельности не выходит.
firebird_iopsВопрос, почему база данных не способна нагрузить диск, во что она упирается.
указал выше, во что упирается. Вы что хотите получить? Загрузку диска для однопользовательского режима, или для 200 пользователей, только для insert, или select/insert/update/delete, или что?

IOMeter, кстати, если показывает 30к иопсов, то это макс. предел дисковой подсистемы, голый, там тупо запись пустых страниц идет, которые никак не связаны между собой.
В любой базе страницы связаны между собой разным образом, пишутся в разных порядках, и т.д. Поэтому реальная СУБД будет медленнее IOmeter.

Спасибо за ответ, именно из-за него я и создал тему. Понятно, что при моем тесте происходит сериализация на уровне БД, которая приводит к ограниченному числу IOPS. Чтобы исключить блокировку страницы, сделаю несколько больших таблиц с индексом по одному полю и запущу случайны update. Тогда изменения будут проходить в разных страницах и блокировка уйдет.

Скажите, каким образом можно увидеть, что происходит блокировка страницы?
...
Рейтинг: 0 / 0
firebird IOPS
    #39564841
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firebird_iopsСкажите, каким образом можно увидеть, что происходит блокировка страницы?

пока что только через fb_lock_print
...
Рейтинг: 0 / 0
firebird IOPS
    #39564845
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firebird_iopsСкажите, каким образом можно увидеть, что происходит блокировка страницы?
интуитивно :-) Если вопрос о том, как увидеть очереди ожидания на странице, то есть fb_lock_print. Но при опыте "ровно один день" поллитрой там не обойтись...
...
Рейтинг: 0 / 0
firebird IOPS
    #39564857
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firebird_iops,

а ещё блокировки происходят когда дёргаешь один и тот же генератор (последовательность).

Ширина записи обычно меньше размера страницы. Кроме того записи ещё сжимаются, поэтому на одну страницу влезает много записей.
С помощью утилиты gstat можно посмотреть сколько записей в среднем влезает на страницу данных конкретной таблицы. Это поможет подобрать диапазоны чтобы минимизировать блокировки страницы при одновременной модификации одной таблицы.
...
Рейтинг: 0 / 0
firebird IOPS
    #39564862
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие настройки кэширования в файле firebird.conf? ForceWrites для базы включен/выключен?
...
Рейтинг: 0 / 0
firebird IOPS
    #39564892
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firebird_iopsНастраиваю утилиту нагрузочного тестирования JMeter со следующей задачей, сессии делают insert into table1..10 values (1, 'name'). То есть каждая сессия делает вставку в 10 таблиц.С автокоммитом небось ?
...
Рейтинг: 0 / 0
firebird IOPS
    #39565289
Симонов Денис
пока что только через fb_lock_print

Спасибо, там действительно сложно разобраться без опыта.

а ещё блокировки происходят когда дёргаешь один и тот же генератор (последовательность).

Ширина записи обычно меньше размера страницы. Кроме того записи ещё сжимаются, поэтому на одну страницу влезает много записей.
С помощью утилиты gstat можно посмотреть сколько записей в среднем влезает на страницу данных конкретной таблицы. Это поможет подобрать диапазоны чтобы минимизировать блокировки страницы при одновременной модификации одной таблицы.

Число записей на страницу примерно можно посчитать, при размере 8k и таблице из двух строк (integer + varchar), например ('1', 'Здесь мое имя') делим размер на длину записи. Примерно, конечно.

Какие настройки кэширования в файле firebird.conf? ForceWrites для базы включен/выключен?

Не нашел такого параметра. Как я понял, по уполчанию он включен.

С автокоммитом небось ?

Да, с автокоммитом. Если без автокоммита и вручную делать коммит в jmeter, то при одинаковых тестах падает число IOPS, тогда как задача заставить базу выжимать максимум.



============


Сделал 10 таблиц по миллиону записей в каждой. Построил индекс по полю integer и запустил update t1..10 set name='xxxxxxxxx' where id = ? , где вместо ? идет переменная от 1 до миллиона. По идее при таком режиме не должны быть блокировки на уровне страницы, т.к. апдейты равномерно распределяются по десяти таблицам.

После запуска теста чуть-чуть увеличилось число IOPS, порядка 2600. По сути разницы между последовательным INSERT и случайным update нет, что очень странно. На всякий случай проверил таблицы, в них действительно в случайном порядке изменились записи, так что тест работает как надо.

fb_lock_print посмотрел, но мало что в нем понял, Mutex wait стоит 0.4%.
...
Рейтинг: 0 / 0
firebird IOPS
    #39565293
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС, ты для зачем всё это меряешь?
какова причина?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
firebird IOPS
    #39565299
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

"Компания, сопровождающая ПО на Firebird считает нашу базу корректно настроенной. А то, что рост очереди запросов превышает скорость их обработки базой происходит из-за медленной работы СХД"

И вместо сравнительного измерения разных СХД он почему-то меряет что-то внутри ФБ. Впрочем, согласен, хреновый запрос и будет медленнее работать, чем хороший запрос. Хотя хреновость зависит еще и от структуры БД.
...
Рейтинг: 0 / 0
firebird IOPS
    #39565304
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
06.12.2017 17:43, kdv пишет:
> "Компания, сопровождающая ПО на Firebird считает нашу базу корректно настроенной.
> А то, что рост очереди запросов превышает скорость их обработки базой происходит из-за медленной работы СХД"
> И вместо сравнительного измерения разных СХД он почему-то меряет что-то внутри ФБ.


Модератор: Достаточно.
...
Рейтинг: 0 / 0
firebird IOPS
    #39565314
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firebird IOPS firebird_iopsДа, с автокоммитомЭто и есть узкое место, когда речь идёт о вставке одной записи в тр-ции.
Делайте коммиты вручную и реже.
...
Рейтинг: 0 / 0
firebird IOPS
    #39565325
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firebird IOPS firebird_iopsПосле запуска теста чуть-чуть увеличилось число IOPS, порядка 2600. По сути разницы между последовательным INSERT и случайным update нет, что очень странно.Влад уже несколько раз повторил, что ты меряешь кол-во коммитов. Нельзя выставить 1 коммит на 1000 операторов? Например, сделать хранимку с 250 разных операторов внутри и прогнать ее вместо инсерта и, соответственно,
коммит сработает 1 раз на 250 операторов.

Хотя смысла такого тестирования я тоже не вижу.

А в попугаях я гораздо длиннее. (с)
...
Рейтинг: 0 / 0
firebird IOPS
    #39565333
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firebird IOPS firebird_iopsЧисло записей на страницу примерно можно посчитать

Зачем только его считать, если gstat его покажет точно?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / firebird IOPS
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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