Buenos días a todos.
Les escribo porque necesito que me puedan dar una ayuda con el siguiente
problema que me he topado y no tengo idea como descubrir dónde está el
error:
La situación es la siguiente:
He instalado un PostgreSQL 9.6.2 sobre un servidor Ubuntu 16.04.2 LTS con
las siguientes prestaciones:
12 núcleos y 30 GB de RAM.
He creado una base con pgbench para pruebas y resulta que el rendimiento
sobre un test con pgbench es muy malo cuando el commit en modo síncrono está
activo:
Estos son los resultados:
scaling factor: 1
query mode: simple
number of clients: 50
number of threads: 12
duration: 30 s
number of transactions actually processed: 2773
latency average = 544.336 ms
latency stddev = 617.941 ms
tps = 91.180927 (including connections establishing)
tps = 91.194080 (excluding connections establishing)
Analizando el log de postgres con pgbadger pude ver que los updates demoran
enormemente para una tabla con 10 tuplas solamente. Luego ejecuté un explain
analyze y los resultados del explain se contradicen a lo que arroja el test:
Update on pgbench_tellers (cost=4.14..8.16 rows=1 width=358) (actual
time=0.021..0.021 rows=0 loops=1)
-> Bitmap Heap Scan on pgbench_tellers (cost=4.14..8.16 rows=1
width=358) (actual time=0.010..0.010 rows=1 loops=1)
Recheck Cond: (tid = 5)
Heap Blocks: exact=1
-> Bitmap Index Scan on pgbench_tellers_pkey (cost=0.00..4.14
rows=1 width=0) (actual time=0.005..0.005 rows=1 loops=1)
Index Cond: (tid = 5)
Planning time: 0.052 ms
Execution time: 0.043 ms
El mismo test lo he realizado en otras máquinas de prueba incluso en
máquinas virtuales en mi pc local y nunca han arrojado resultados tan malos.
Agradecería enormemente una ayuda en este tema.
Saludos a todos.