Hola.
Tengo un servidor con 4 GB de RAM corriendo sobre Centos 5, con PostgreSQL 9.0.3 y MySQL 5. Estoy empleando pgbench y pgbench-tools (usando las querys: select y tpc-b) para medir el rendimiento, a medida que modifico parámetros de la configuración de PostgreSQL.
Con la configuración por defecto y la query select, obtuve los siguientes resultados:
Escala: 1, 10, 100, 1000.
Transacciones por segundo: 10000, 8800, 7500, 100.
(el nº de registros de la tabla es escala*100000)
Tras incrementar el valor de shared_buffers a 256MB (tenía 32 MB), obtuve los siguientes resultados:
Escala: 1, 10, 100, 1000.
Transacciones por segundo: 10000, 8000, 3200, 30.
Ambos benchmarks fueron lanzados con y sin autovacuum, obteniendo resultados similares, además me aseguré de que MySQL "no estorbase" en los test.
En un test previo a éstos, la configuración de las variables de memoria fue:
shared_buffers = 512 MB
maintenance_work_mem = 8MB
effective_cache_size = 1GB
work_mem = 2MB
Y obtuve también un rendimiento muy bajo con respecto a la configuración por defecto, lo que me llevó a intentar averiguar qué parámetro de la configuración era el "culpable", de ahí el segundo benchmark en el que sólo modifico shared_buffers.
No entiendo por qué cuando la escala es 100 o más, el aumento de shared_buffers provoca que el rendimiento disminuya de manera tan drástica.
Un saludo y muchas gracias de antemano. Cualquier información al respecto será bien recibida.