DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой...

76
DBMS Benchmarks in a Nutshell Андрей Николаенко IBS концентрированное обозрение сферы эталонного тестирования СУБД

Transcript of DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой...

Page 1: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

DBMS Benchmarks

in a Nutshell

Андрей НиколаенкоIBS

к о н ц е н т р и р о в а н н о е о б о з р е н и е с ф е р ы э т а л о н н о г о т е с т и р о в а н и я С У Б Д

Page 2: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Гонки TPC-C

296 результатов

Simfoware, Oracle DB 7–8, DB2/400 и UDB, Informix, MS SQL Server, Sybase ASE …

Page 3: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-C, апрель 2017

SQL

AnywhereGoldilocks

Page 4: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Р А Н Н Я Я И С Т О Р И Я

Page 5: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TP1

Середина 1970-х,

бенчмарк IBM

обработка банковских транзакций

Idefix: 100 tps

(1973, «банк с 1 тыс. отделений

и 10 тыс.

операционистов»)

Пакетный режим без сетибез времени на

реакцию оператора

Начало 1980-х: фантастические

победные реляции на

10 ktps

Рынок вышел на миллиардные

обороты

… с самым быстрорастущим

сегментом с фокусом на OLTP

…но конечные заказчики не

получали и 1 ktps …

Page 6: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Дэвид Девитт: Висконсинский бенчмарк

Альтернативный, более строго

детерминированный бенчмарк

Нацелен на борьбу с «бенчмарковыми

войнами», но разжёг их ещё сильнее!

Из-за низких результатов Oracle DB появилась «оговорка

Девитта» (DeWitt clause)

Лицензия на СУБД запрещает

публикацию каких-либо тестов

производительности СУБД

Page 7: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Джим Грей:

DebitCredit

В пику висконсинскому бенчмарку, на базе предметной области из TP1

Требуется публикация суммарной стоимости системы, включая оборудование, лицензии, 5 лет сопровождения

Тест специфицирован на языке функциональных требований, без требований к коду или фрагментов кодаВведены правила масштабирования теста по количеству пользователей и размерам таблиц с пропорциональным ростомВведено ограничение на время отклика: 95 % транзакций должно завершиться за 1 сек.

Page 8: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Изображение: ©Dell, 2013

Главное:

ограничение на

время отклика

Page 9: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Э П О Х А С О В Е Т А

Page 10: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC.org

Бенчмарковые войны продолжались: как проверить результат?

Нужна некоммерческая организация

1988: Transaction Processing Performance Council –Совет по оценке производительности транзакционной обработки

Основатель – Омри Серлин и 8 согласных вендоров

Actian Cisco Cloudera Dell DataCore Fujitsu HPE Hitachi Huawei IBM

Inspur Intel Lenovo Microsoft Oracle Pivotal Red Hat SAP Teradata VMWare

Члены на 2017 год:

Page 11: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-A и TPC-B: тест

READ 100 bytes from TTY (AID, TID, BID, DELTA)

BEGIN TRANSACTION

UPDATE ACCOUNT WHERE ACCOUNT_ID = AID:

READ ACCOUNT_BALANCE FROM ACCOUNT

SET ACCOUNT_BALANCE = ACCOUNT_BALANCE + DELTA

WRITE ACCOUNT_BALANCE TO ACCOUNT

WRITE TO HISTORY:

AID, TID, BID, DELTA, TIME_STAMP

UPDATE TELLER WHERE TELLER_ID = TID:

SET TELLER_BALANCE = TELLER_BALANCE + DELTA

WRITE TELLER_BALANCE TO TELLER

UPDATE BRANCH WHERE BRANCH_ID = BID:

SET BRANCH_BALANCE = BRANCH_BALANCE + DELTA

WRITE BRANCH_BALANCE TO BRANCH

COMMIT TRANSACTION

WRITE 200 bytes to TTY (AID, TID, BID, DELTA)

На основе TP1 – обработка розничнобанковских транзакций

Page 12: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-A и TPC-B: модель

BRANCH

B

ACCOUNT

B*100K

100K

HISTORY

B*2.6M

TELLER

B*1010

Цикл в 10 с у каждого

терминала

1 транзакция в секунду на

каждое отделение

Отклик от 90% транзакций –менее 2 сек

Считается: средний

показатель транзакций в секунду за 15 мин

Page 13: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-A и TPC-B: различия

TPC-A

Терминалы

Время на реакцию

пользователя

TPC-B

Серверный тест

Сокращённая история

(30 дней)

Page 14: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-A и TPC-B: критика

1995: признаны несостоятельными

Последний результат (DEC, 1994)

3700 tpsA 4800 $/tpsA

Первый результат (HP, 1990)

38.2 tpsA 29200 $/tpsA

Наследие TP1

Слишком простые, чтобы исключить подстройки

Невероятные разбросы результатов

Page 15: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-C: усложнение

Пороги отклика для 90% транзакций

Менее 5 сек для интерактивных операций

Менее 20 сек для пакетных процессов

Больше вариаций

9 таблицВставки, обновления,

удаления, отмены операцийДоступ по первичными и

вторичным ключам

5 типов транзакций

NEW-ORDER

• новая заявка от клиента

PAYMENT

• факт платежа

• обновление баланса клиента

DELIVERY

• заявка на доставку

• (пакетный процесс)

ORDER-STATUS

• проверка статуса последней заявки от клиента

STOCK-LEVEL

• проверка уровня запасов на складе

45% 43% 4% 4% 4%

Page 16: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Модель данных TPC-C

WAREHOUSEW

DISTRICTW*10

10

CUSTOMERW*30K

3K

HISTORYW*30K+

1+

ITEM100K (fix)

STOCKW*100K100K W

ORDERW*30K+

1+

ORDER-LINEW*300K+

10–15

NEW-ORDERW*5K0–1

Page 17: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-C: масштабирование

Каждый новый склад → +10 участков,

+100 единиц хранения, +300 тыс. клиентов

Максимум – 1,2 tpmC на терминал

10 терминалов на склад

Квант масштабирования – склад ( )W

Page 18: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-C: кластерные и некластерные

КластерныеНесколько

узлов

Без разделяемых ресурсов

(федеративные)

Сегментирование

С общим ресурсом

хранения (RAC)

Некластерные Один узел

Page 19: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-C: метрики

tpmC

Транзакций в минуту

tpmC / $

Стоимость транзакции

Полная стоимость оборудования

Лицензии и поддержка на 3

года

W / ktpmC

Энергозатраты на [кило] транзакцию

Page 20: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Интерпретация TPC-C

По Алану Паркеру (Alan Parker. Tuning databases on Solaris platform. Prentice-Hall, 2002)

• …не только создание заявокtpmC × 2

• …если нет монитора транзакцийtpmC / 2

• …если на стороне оператора клиент типа Oracle FormstpmC / 3• …если используются легковесные экранные формы

(curses и т. п.)tpmC × 2 / 3

• …если в приложении не было тонкой настройки SQLtpmC / 2• …если параллельно нагрузке формируются отчёты или

выполняются пакетные заданияtpmC / 2

Page 21: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Просто ли обмануть TPC-C?

mount -t tmpfs -o size=2048g tmpfs /u01/tablespaces

CREATE UNLOGGED TABLE …

_ALLOW_RESETLOGS_CORRUPTION = TRUE

_IN_MEMORY_UNDO = TRUE

_DB_BLOCK_HASH_LATCHES = 32768

Page 22: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Ответ от Совета

Те с т ы н а в с е а с п е к т ы A C I D з а к р е п л е н ы в с п е ц и ф и к а ц и и в в е с ь м а ж ё с т к о й т р а к т о в к е

Защита от перезагрузки одного узла

Зеркальная синхронная фиксация на отдельном узле

Журналы упреждающей записи и восстановление

Работоспособность при перезагрузке

Защита «одиночного сбоя носителя»

Зеркальная синхронная фиксация на раздельно запитанные носители

Журналы упреждающей записи на независимом носителе и восстановление

Фиксация транзакции = записано на энергонезависимый носитель

Page 23: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-C: критика 1990-х

Даже оптовики работали по-другому!

Заявка: несколько неуспешных поисков с

подстановочными символами

После каждой заявки печатается бумажный отчёт (иногда трижды)

«Обновление балансов» на каждой онлайн-операции при больших

нагрузках невозможно → вставка + пакетный досчёт остатков

Простая логика

Нет декларативных ограничений целостности Нет триггерной логики

Нетипичные нагрузки

А как же отчётность?А как же системы поддержки принятия

решений?

Page 24: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC: отменённое

TPC-D 1995–1999Первая попытка

OLAP-теста

TPC-R 2001–2005 Отчётность

TPC-W 2001–2005Онлайн-

веб-коммерция

Page 25: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-H

1999 год: OLAP vs OLTP

“Ad-hoc decision support”

Вместо признанного неудачным

TPC-D

«Весовые категории»

100 ГБ

300 ГБ

1 ТБ

3 ТБ

10 ТБ

30 ТБ

100 ТБ

Параллельная нагрузка

22 вида сложных запросов

2 типа обновления хранилища

Page 26: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

1 SF ~ 1 GB

Ограничения

целостности

Не звезда

TPC-H:

модель

Page 27: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-H Q1

SELECT

l_returnflag, l_linestatus,

sum(l_quantity) as sum_qty,

sum(l_extendedprice) as sum_base_price,

sum(l_extendedprice*(1-l_discount)) as sum_disc_price,

sum(l_extendedprice*(1-l_discount)*(1+l_tax)) as sum_charge,

avg(l_quantity) as avg_qty,

avg(l_extendedprice) as avg_price,

avg(l_discount) as avg_disc,

count(*) as count_order

FROM lineitem

WHERE l_shipdate <= date '1998-12-01' - interval Δ day (3)

GROUP BY l_returnflag, l_linestatus

ORDER BY l_returnflag, l_linestatus Δ = random [60…120]

“ F u n c t i o n a l Q u e r y D e f i n i t i o n ”

Page 28: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-H: результаты-2017

Напрямую трудно применимо к нереляционным СУБД

Есть варианты трансляции для MOLAP(MDX)

Были сообщения о применении для Apache Hive

Exasol

MS SQL Server

Oracle Database

Actian Vector

От 1 до 10 результатов в каждой «весовой категории»

Page 29: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-E: «Практичный OLTP»

Тоже OLTP, но более «гибридный»

Включённые ограничения целостности

Без мониторов транзакций

Больше чтений

Больше видов нагрузок

Page 30: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-E: сложный поток операций

Page 31: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-E: модель данных

Изображение: ©Transaction Processing Council, 2009

Page 32: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

78 результатов

Все – некластерные, MS SQL Server на Windows Server x64

Page 33: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

11 ktpse,

$144/tpse

(1,6 MIO)

Изображение: ©Lenovo, © TPC, 2015

Page 34: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-ABCEH

TPC-A/B TPC-C TPC-E TPC-H

Предметная

областьРозничный банк Оптовый склад Брокерский дом Дискретный сбыт

Таблиц 4 9 33 8

Чтение-запись 100% 92% 23,10% 8%

Чтение 0% 8% 76,90% 92%

Ограничения

целостности0 0 22 17

Генерация

данныхСлучайная Случайная

Псевдо-

действительнаяСлучайная

Метрика tpsA tpmC tpsE QphH@Size

Page 35: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Новые TPC-x и TPCx-X

TPC-DI

ETL-нагрузки

TPC_DI_RPS

0 результатов

TPC-DS

Поддержка принятия решений,

«включая большие данные»

(«включая Hadoop/Spark»)

QphDS@Size

0 результатов

TPCx-BB

Экспресс-бенчмарк для аналитических

больших данныхна базе BigBench

BBpm@Size

0 результатов

TPCx-HS

Экспресс-бенчмарк для

HDFS-совместимых

систем по типу TeraSort

HSph@Size

От 1 до 4 результатов в

разных «весовых категориях»

Page 36: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Публикация?

Публикация на TPC.org

Академическая или исследовательская публикация, не применимая с маркетинговыми целями

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

С разрешения TPC.org

Запрещено публиковать результаты TPC-тестов,

полученные по средствами TPC, кроме следующих случаев:

Page 37: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

«Оговорка Девитта» в 2017 году?

MSFT EULA

• “You may not disclose the results of any benchmark test … without Microsoft’s prior written approval”

OTN Lic.

• “You may not disclose results of any Program benchmark tests without Oracle’s prior consent”

IBM IPLA

• “Licensee may disclose the results of any benchmark test of the Program or its subcomponents to any third party provided that Licensee, if … A) … B) … C)…”

Page 38: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Н О В А Я В О Л Н А

Page 39: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Новым нагрузкам – новые бенчмарки

20

10

20

00

19

90

19

80

OLTP

ROLAP ROLAP

Резидентный OLAP

TCP-DS

ROLAP TCP-H

Графовые запросы

LinkBench

MapReduce HiBench

OLTP

OLTP[E] OLTP[E] TPC-E

OLTPАтомарный

доступYCSB

TPCx-HS

TPCx-BB

Page 40: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Основные бенчмарки «новой волны»

Terrasort Benchmark

BigBench

Intel HiBench

Yahoo! Cloud Services Benchmark

Linkbench

• Воплощён в TPCx-HS

• Воплощён в TPCx-BB

• Серия тестов для Hadoop

• Набор «эталонных обстрелов» для NoSQL-систем

• Графообразная нагрузка на РСУБД

Page 41: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Linkbench

Нагрузка Facebook

• Ранние графовые тесты были ориентированы на граф-анализ

• Реальная нагрузка крупной интернет-компании

• Транзакционность (MVCC)

Методологично

• Статистические законы при генерации

• Показатели – средние времена отклика для каждой из нагрузок

• Средний отклик в 99-м процентиле

• Документов в секунду – на запись

• Запросов в секунду – на чтение

MySQL (InnoDB vs TokuDB)

HBase

MongoDB / TokuMX

OrientDB

В о п р о с F a c e b o o k

Page 42: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Inte

l H

ibe

nch

дл

яH

ado

op

Изо

браж

ени

е: In

tel, 2

013

Page 43: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Yahoo! Cloud services benchmark

Новый инструмент «бенчмаркового маркетинга»

Смело используется исследователями (V. Abramova et al. Experimental Evaluation of NoSQL Databases // IJDMS Vol.6, №3, 2014)

Cassandra HBaseElasticsearch

MongoDBOracle NoSQL

OrientDB Redis Scalaris Tarantool Voldemort

Обстрел с одной нагрузочной станции

Вместо транзакции – атомарная операция(возможно, чтение нескольких записей)

Page 44: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

YCSB: нагрузки

Page 45: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Пример «бенчмарктенинга» в новом классе

Page 46: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Возможен? Корректен?

Репрезентативен?

Сравним?

Повторяем?

ЗАМЕР

«КАРМАННЫМИ

СРЕДСТВАМИ»

Page 47: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

pgbench

TPC-B

Стандартная часть

PostgreSQL

Запуск одной строкой

Фактический стандарт для нужд PostgreSQL

Что лучше – XFS или ext4?

Таблицы на SSD, индексы на HDD, или

наоборот?

Размер блока – 4K или 8K?

Page 48: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Sysbench

Широко используется для внутренних сравнений MySQL, MariaDB и их форков

Своеобразные тесты, не похожие на какие-либо стандартные бенчмарки

Утилита MySQL (автор – Алексей Копытов)

fileio cpu memory threads mutex oltp

Page 49: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPCE-MySQL

TPC-E-нагрузчик для MySQL от Percona

Page 50: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

HammerDB

Свободная Java-GUI-программа,

запускающая TPC-C (?) и TPC-H (?) с поддержкой множества СУБД:

Oracle Database

Microsoft SQL Server

IBM DB2 TimesTen MySQL

MariaDBPostgre

SQLPostgres Plus AS

Greenplum DB

Redis

Amazon Aurora

(MySQL)

Amazon Redshift

(ParAccel)

Trafodion SQL on Hadoop

Page 51: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Ham

me

rDB

:

TP

C-C

в «

од

ин к

ли

к»?

Page 52: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

HammerDB: TPC, но не совсем…

При этом нет востребованных в современных бенчмарков

TPC-E TPC-DS

TPC-H

Единственная нагрузочная станция

TPC-C

Не эмулируется нагрузка всего окружения

Нагрузочная станция – в роли единственного монитора транзакций

Page 53: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

HammerDB: популярность

Используетсявендорами

оборудования и платформ

Но аккуратно, в формате

«блог нашего сотрудника»

Хаб с результатами

тестов

Раздел

«Performance

Data»

Page 54: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Swingbench

TPC-C-подобная нагрузка на Oracle Database и Timesten

+ Своеобразный OLTP- тест с большой PL/SQL-логикой

Специфичные для Oracle DB средства мониторинга и анализа (AWR, etc.)

Поддержка координатора

GUI и командная строка

Сравнимость только внутри инструмента

Нерепрезентативные результаты в условиях RAC

Page 55: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Quest Benchmark factory for databases

Oracle Database

MySQLMS SQL Server

SQLiteSQL

Anywhere

Коммерческий инструментTPC-C ?

TPC-D

TPC-E

TPC-H

ASP3AP

Поддерживает архитектуру

с несколькими нагрузочными станциями

(Windows)

Page 56: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

osdldbt.sourceforge.net

• TPC-WDBT-1

• TPC-CDBT-2

• TPC-HDBT-3

• TPC-AppDBT-4

• TPC-EDBT-5

While the inspiration for these workloads

are the TPC-<x…>, workloads are

entirely different and results obtained

from them should not and can not be

compared to TPC results.

The use of any supplied results of these

tests for commercial purposes is

expressly prohibited.

MySQL PostgreSQL

…расширяемо

Page 57: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

oltpbench

github.com/oltpbenchmark/oltpbench

Java-средство для командной строки

Для любой РСУБД с поддержкой JDBC

Особая версия для Hstore (VoltDB )

TPC-C WikipediaSynthetic Resource Stresser

Twitter Epinions.com TATP

AuctionMark SEATS YCSBJPAB

(Hibernate)CH-

benCHmarkVoter

SIBench(Snapshot Isolation)

SmallBank LinkBench

Page 58: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC tools

Средства от Совета…

Исходные тексты на

Си

Н е т д л я T P C - C : только «сэмпл» в

спецификации

Вся соединяемость

и прочая работа –

своими руками

Page 59: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

TPC-* By Example

По «отчётам о полном раскрытии информации» на TPC.org

Page 60: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Benchware

«Швейцарский нож» от Манфреда Дрозда:

Peakmarks Benchware

OraCPU

PL/SQL op

• [ops]

PL/SQL alg

• [ops]

OraSRV

In-memory SQL

• [ms]

• [dbps]

• [tps]

• [rps]

OraSTO

SeqIO

• [GBps]

• [iops]

RandIO

• [GBps]

• [iops]

OraOLTP

OLTP Select

• [rps]

• [tps]

OLTP Update

• [rps]

• [tps]

OraLoad

TransLoad

• [rps]

• [tps]

BulkLoad

• [rps]

• [tps]

OraAgg

OraAgg & Rep

• [rps]

• [tps]

Только Oracle Database, только PL/SQL и SYS.V_$%

Page 61: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Самый

практичный

метод?

Прогон реальной нагрузки и

бенчмарки приложений

Page 62: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Воспроизведение нагрузки: точный опыт

Системы с полным API-доступом (обычно JSON via HTTP)

Журналирование и «самозахват»

Повтор с интервалами

Разделение типов нагрузки

(категорий пользователей)

Масштабирование по данным?

Средства эмуляции нагрузки

JMeter LoadRunner …

Средства на стороне СУБДOracle Real Application Testing

(Database Replay)MS SQL Server Distributed Replay

Page 63: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Тонкости «зашнуровки»

Как размножить

базу данных?

«Вегетативное размножение»

Повторные со случайным сдвигом?

Наложение реальных данных

(из открытых данных)

Влияние на аналитику

Предсказуемые выборки

Пониженная селективность

Влияние на OLTP

Ключи, индексы…

Page 64: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Тиражируемые приложения

1C: типовая конфигурация «Стандартный нагрузочный тест»

Показатель – Apdex (число одновременно работающих пользователей при заданном максимальном времени отклика)

Microsoft Dynamics AX Application Benchmark Toolkit

Oracle E-Business Suite Standard Benchamrks

Order-to-Cash OLTP Payroll …

SAPS [SAP Application Performance Standard] на модуле SD

Page 65: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

RPE2

SAP SD 2-Tier

TPC-C

TPC-HSPECjbb2005

SPEC CPU2006

Суперкомпозитный показатель от Gartner (Ideas)

RPE2-ERP

RPE2-Java

RPE2-OLTP

RPE2-Compute Intensive

Page 66: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Атомизация показателей

Page 67: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Машины баз данных?

Предконфигурированныеаппаратно-программные комплексы для СУБД

Кто, как не они должны быть «проверены и отмерены» для практических целей?

Page 68: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Teradata

Последние публикации Teradata c TPC-H:

Лицензируется по «внутреннему Qph» –

tPerf [Traditional Performance]

Page 69: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Exadata

Не публикуются tps, Qph…

«Паспортные показатели» (X6-8)

𝑉 × IOPS ≈ Const

Page 70: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

IBM Pure Data for Operational analytics

Не публикуются Qph…

«Паспортные данные» – про ввод-вывод

Page 71: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

“SQL IOPS”

Получение SQL IOPS для других СУБД?

Статистические представления (…IO_STATS…)

IOPS со стороны Oracle Database

Orion (Oracle IO Numbers)

SLOB(рекомендуют EMC,

Flashgrid)

Benchware(?)

DBMS_RESOURCE_MANAGER

.CALIBRATE_IO

Page 72: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Атомизация агрегатных показателей

tpmC

QpmH

SQL IOPS

SQL bandwidth

Page 73: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Атомизация показателей: Pro

Независимость от заданных моделей и схем

Признаются производителями машин

баз данных

Доступны для «карманной инструментовки»

Показательны для широкого класса СУБД и СУБД-подобных систем

• Показательны не только для 3NF, снежинок, звёзд

• Включены в «паспортные показатели»

• Могут быть запущены со стороны БД

• Могут быть интересны для NoSQL

Page 74: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Атомизация показателей: …et contra

Вопросы к методологии

Результаты CALIBRATE_IO и

Benchware –разные

Неочевидный прикладной

смысл результата

Для разных СУБД одно и то же число операций – разное

количество транзакций

Нет готового инструмента для

большинства известных СУБД

Есть для Oracle DB, IBM DB2, MS

SQL

Page 75: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Дискуссионные вопросы

• Смогут ли стать столь же популярными, как TPC-C и TPC-H в своё время?

• Проблема мегаконфигураций

TPC-E и TPC-DS

• TPC-B повторить просто

• Остальные – сложно или с неполным соответствием

«Карманный» инструментарий

• Признание, адаптация и стандартизация, интерпретация

• Возможны ли другие показатели подобного рода?

SQL IOPS & Bandwidth

• Атомарные (YCSB-тип)

• Графовые (LinkBench-тип)

Стандартизация и универсализация тестов для новых нагрузок

• Новые типы приложений – порталы, системы групповой работы

• Новые архитектуры слоя БД – сегментация, резидентные СУБД, резидентные гриды

Перспективы эталонных тестов на основе реальной нагрузки нового поколения

Page 76: DBMS Benchmarks in a NutshellPostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше –XFS или ext4?

Спасибо за внимание!

mailto:[email protected]

mailto:[email protected]

Материал доступен по лицензии CC-SA 3.0, некоторые использованные изображения и логотипы могут принадлежать другим правообладателям