Самое необходимое
pgbench (официальный инструмент PostgreSQL, рабочая нагрузка близка к TPC-B) и sysbench-tpcc (рабочая нагрузка TPC-C, более репрезентативная для реальной транзакционной нагрузки) оба работают напрямую со стандартной строкой подключения Postgres 16 вашего проекта Aurabase — без использования проприетарного API. В этом руководстве показаны фактические заказы и то, где заканчивается то, что может законно доказать показатель GST.
pgbench для простоты, sysbench-tpcc для реалистичности
pgbench распространяется вместе с PostgreSQL: отдельной установки на клиенте не требуется, если у вас уже есть клиентские инструменты Postgres. Его рабочая нагрузка по умолчанию воспроизводит нагрузку, близкую к историческому тесту TPC-B — простому, быстрому запуску, полезному для первого сигнала.
sysbench — это более общий инструмент тестирования с плагином sysbench-tpcc, который копирует рабочую нагрузку TPC-C — сочетание транзакций, представляющее реальное приложение OLTP (заказы, платежи, запасы), более близкое к тому, что ваш серверный компонент Aurabase обрабатывает в рабочей среде, чем стандартная рабочая нагрузка pgbench.
Получите строку подключения и создайте специальную тестовую базу.
1
Получите строку подключения с панели управления Aurabase.
Раздел базы данных вашего проекта, стандартный формат postgresql://user:password@host:5432/dbname.
2
Создайте отдельную тестовую базу, а не производственную базу.
psql "$AURABASE_CONN" -c "СОЗДАТЬ БАЗУ ДАННЫХ Bench_test;"
pgbench и sysbench-tpcc создают, заполняют и изменяют таблицы. Всегда используйте выделенную базу, а не схему, обслуживающую реальный трафик.
Инициализируйте и запустите первый запуск
1
Инициализировать набор данных
pgbench -i -s 10 "postgresql://user:pass@host:5432/bench_test" # -s 10 = коэффициент масштабирования (10 × 100 000 строк в pgbench_accounts)
2
Запустите 60-секундный забег с 10 конкурирующими клиентами.
pgbench -c 10 -j 2 -T 60 -P 5 "postgresql://user:pass@host:5432/bench_test" # -c = одновременные клиенты · -j = потоки · -T = продолжительность в секундах · -P = отчет каждые 5 секунд
3
Прочитайте результат
pgbench отображает tps (транзакций в секунду) в конце выполнения, с указанием времени соединения и без него. Обратите внимание на коэффициент масштабирования, количество клиентов и продолжительность запуска — без этих трех параметров само по себе число ничего не значит.
Более репрезентативная транзакционная рабочая нагрузка
1
Установите sysbench и плагин tpcc.
git clone https://github.com/Percona-Lab/sysbench-tpcc.git # следуйте README репозитория для компиляции плагина
2
Подготовьте набор данных TPC-C
./tpcc.lua --pgsql-host=host --pgsql-user=user --pgsql-password=pass \ --pgsql-db=bench_test --warehouses=10 подготовить
3
Начать бег
./tpcc.lua --pgsql-host=host --pgsql-user=user --pgsql-password=pass \ --pgsql-db=bench_test --warehouses=10 --time=300 --threads=16 --report-interval=10 запустить
Руководство по настройке sysbench-tpcc, посвященное PostgreSQL, было опубликовано Percona в мае 2026 года и полезно для настройки shared_buffers и work_mem перед запуском репрезентативного запуска.
Чего не доказывает одна цифра GST
Значение tps зависит от коэффициента масштабирования, количества одновременных клиентов, базового оборудования и настроек Postgres, активных на момент запуска. Два временных показателя, полученные с разными параметрами, несопоставимы даже в одной базе данных.
Чтобы ваш результат служил воспроизводимым эталоном, систематически документируйте: версию Postgres, коэффициент масштабирования, количество клиентов/потоков, продолжительность выполнения и эффективную конфигурацию postgresql.conf. Прежде чем публиковать данные, ознакомьтесь с нашей полной методикой тестирования для протокола, который мы применяем.
Настройка Postgres перед перезапуском запуска
Тестовый прогон часто выявляет узкое место еще до любой корректировки — насыщенные соединения, запаздывающая автоочистка, отсутствующий индекс. В нашем контрольном списке настройки Postgres в рабочей версии и в нашей статье о max_connections с размером описаны параметры, которые необходимо проверить перед перезапуском запуска.