Lo esencial
pgbench (herramienta oficial de PostgreSQL, carga de trabajo cercana a TPC-B) y sysbench-tpcc (carga de trabajo de TPC-C más representativa de una carga transaccional real) se ejecutan directamente contra la cadena de conexión estándar Postgres 16 de su proyecto Aurabase, sin API propietaria que deba omitir. Este tutorial muestra los pedidos reales y dónde termina lo que una cifra de GST puede probar legítimamente.
pgbench por simplicidad, sysbench-tpcc por realismo
pgbench se distribuye con el propio PostgreSQL: no es necesario realizar una instalación separada en el cliente si ya tiene las herramientas del cliente de Postgres. Su carga de trabajo predeterminada reproduce una carga cercana al punto de referencia histórico TPC-B: simple, rápido de iniciar y útil para una primera señal.
sysbench es una herramienta de referencia más general, con un complemento sysbench-tpcc que replica la carga de trabajo TPC-C: una combinación de transacciones representativas de una aplicación OLTP real (pedidos, pagos, inventario), más cercana a lo que maneja su backend de Aurabase en producción que la carga de trabajo genérica de pgbench.
Recupere la cadena de conexión y cree una base de prueba dedicada
1
Recuperar la cadena de conexión desde el panel de Aurabase
Sección de base de datos de su proyecto, formato estándar postgresql://user:password@host:5432/dbname.
2
Cree una base de pruebas separada, nunca su base de producción.
psql "$AURABASE_CONN" -c "CREAR BASE DE DATOS bench_test;"
pgbench y sysbench-tpcc crean, completan y modifican tablas. Utilice siempre una base dedicada, nunca un esquema que atienda tráfico real.
Inicializar y lanzar una primera ejecución
1
Inicializar el conjunto de datos
pgbench -i -s 10 "postgresql://user:pass@host:5432/bench_test" # -s 10 = factor de escala (10 × 100.000 filas en pgbench_accounts)
2
Ejecute una ejecución de 60 segundos, 10 clientes competidores
pgbench -c 10 -j 2 -T 60 -P 5 "postgresql://user:pass@host:5432/bench_test" # -c = clientes concurrentes · -j = subprocesos · -T = duración en segundos · -P = reportar cada 5s
3
leer el resultado
pgbench muestra tps (transacciones por segundo) al final de la ejecución, con y sin el tiempo de conexión. Tenga en cuenta el factor de escala, la cantidad de clientes y la duración por ejecución; sin estos tres parámetros, la cantidad por sí sola no significa nada.
Una carga de trabajo transaccional más representativa
1
Instale sysbench y el complemento tpcc
git clone https://github.com/Percona-Lab/sysbench-tpcc.git # sigue el archivo README del repositorio para compilar el complemento
2
Prepare el conjunto de datos TPC-C
./tpcc.lua --pgsql-host=host --pgsql-user=user --pgsql-password=pass \ --pgsql-db=bench_test --warehouses=10 preparar
3
Iniciar la carrera
./tpcc.lua --pgsql-host=host --pgsql-user=user --pgsql-password=pass \ --pgsql-db=bench_test --warehouses=10 --time=300 --threads=16 --report-interval=10 ejecutar
Percona publicó una guía de ajuste de sysbench-tpcc dedicada a PostgreSQL en mayo de 2026, útil para ajustar shared_buffers y work_mem antes de ejecutar una ejecución representativa.
Lo que una cifra del GST por sí sola no prueba
El tps depende del factor de escala, la cantidad de clientes simultáneos, el hardware subyacente y la configuración de Postgres activa en el momento de la ejecución. Dos cifras de tiempo obtenidas con parámetros diferentes no son comparables, ni siquiera en la misma base de datos.
Para que su resultado sirva como referencia reproducible, documente sistemáticamente: versión de Postgres, factor de escala, número de clientes/hilos, duración de la ejecución y la configuración efectiva de postgresql.conf. Consulte nuestra metodología de referencia completa para conocer el protocolo que aplicamos antes de publicar una figura.
Ajustar Postgres antes de reiniciar una ejecución
Una ejecución comparativa a menudo revela un cuello de botella antes de cualquier ajuste: conexiones saturadas, vacío automático retrasado, índice faltante. Nuestra lista de verificación de ajuste de Postgres en producción y nuestro artículo sobre el tamaño de max_connections cubren las configuraciones que se deben verificar antes de reiniciar una ejecución.