prueba de rendimiento pg_probackup

La herramienta g_proabckup es una herramienta de administración de respaldo y recuperación para la base de datos postgresql

artículo de introducción de pg_probackup

Fines de prueba:

La diferencia en el rendimiento de la copia de seguridad entre el modo delta y el modo de página de la herramienta pg_probackup en esta prueba

Examen de preparación:

Prepare mil millones de datos (tamaño de datos 146G):

pgbench -i -s 10000 -U backup -h 127.0.0.1 pgbenchpgbench=# \dt             List of relations Schema |       Name       | Type  | Owner  --------+------------------+-------+-------- public | pgbench_accounts | table | backup public | pgbench_branches | table | backup public | pgbench_history  | table | backup public | pgbench_tellers  | table | backup(4 rows)
pgbench=# select count(*) from pgbench_accounts;   count    ------------ 1000000000(1 row)

Uso del disco:

[postgres @ ecos75r018-meijia-31-150 ~] $ df -h Tamaño del sistema de archivos utilizado% de uso disponible montado ondevtmpfs 7.5G 0 7.5G 0% / devtmpfs 7.5G 12K 7.5G 1% / dev / shmtmpfs 7.5G 9.2M 7.5G 1 % / runtmpfs 7.5G 0 7.5G 0% / sys / fs / cgroup / dev / mapper / vg00-lv_root 20G 9.9G 8.8G 53% // dev / sda1 501M 335M 130M 73% / boot / dev / sda2 524M 12K 524M 1% / boot / efi / dev / sdb1 296G 147G 134G 53% / postgresql / data / dev / sdc1 296G 65M 281G 1% / postgresql / backuptmpfs 1.5G 0 1.5G 0% / run / user / 0 / dev / sdd1 296G 122G 160G 44% / postgresql / archivo


Copia de seguridad completa (DELTA)

pg_probackup-12 copia de seguridad -B / postgresql / copia de seguridad / --instancia pgbak -j 4 -U probackup --stream -b completo

[postgres @ ecos75r018-meijia-31-150 postgresql] $ pg_probackup-12 backup -B / postgresql / backup / --instance pgbak -j 4 -U probackup --stream -b full --temp-slotINFO: Inicio de copia de seguridad, pg_probackup versión: 2.4.8, instancia: pgbak, ID de respaldo: QLOIL1, modo de respaldo: FULL, modo wal: STREAM, remoto: falso, algoritmo de compresión: ninguno, nivel de compresión: 1 ADVERTENCIA: Esta instancia de PostgreSQL se inicializó sin sumas de verificación de bloques de datos . pg_probackup no tiene forma de detectar la corrupción del bloque de datos sin ellos. Reinicialice PGDATA con la opción '--data-checksums'.INFO: Tamaño de PGDATA: 146GBINFO: Iniciar la transferencia de archivos de datosINFO: Los archivos de datos se transfieren, tiempo transcurrido: 33m: 19s2020-12-21 16: 12: 20.388 CST [24069] LOG: punto de restauración "pg_probackup, backup_id QLOIL1" creado en 23 / C00001782020-12-21 16: 12: 20.388 CST [24069] DECLARACIÓN: SELECT pg_catalog.

Hora: 2020/12/21 15:39 ~ 2020/12/18 16:31


ps: se producen los siguientes errores y es necesario configurar las variables de entorno de la biblioteca pg lib:

exportar LD_LIBRARY_PATH = / usr / local / postgresql-12.4 / lib

ERROR: no se pudo conectar a la base de datos postgres: no se pudo conectar al servidor: no existe tal archivo o directorio. ¿El servidor se está ejecutando localmente y acepta conexiones en el socket de dominio Unix "/var/run/postgresql/.s.PGSQL.5432"?


Preparación de datos incrementales:

Inserte 100 millones de datos incrementales (aproximadamente 15G de datos)

pgbench -i -s 1000 -U probackup -h 127.0.0.1 pgbench_inc

Uso del disco:

[postgres @ ecos75r018-meijia-31-150 postgresql] $ df -h Tamaño del sistema de archivos utilizado Uso disponible% Montado ondevtmpfs 7.5G 0 7.5G 0% / devtmpfs 7.5G 12K 7.5G 1% / dev / shmtmpfs 7.5G 9.1M 7.5G 1 % / runtmpfs 7.5G 0 7.5G 0% / sys / fs / cgroup / dev / mapper / vg00-lv_root 20G 9.9G 8.8G 53% // dev / sda1 501M 335M 130M 73% / boot / dev / sda2 524M 12K 524M 1% / boot / efitmpfs 1.5G 0 1.5G 0% / run / user / 0 / dev / sdb1 296G 162G 119G 58% / postgresql / data / dev / sdc1 296G 147G 134G 53% / postgresql / backup / dev / sdd1 296G 13G 268G 5% / postgresql / archivo


Copia de seguridad incremental (DELTA)

pg_probackup-12 copia de seguridad -B / postgresql / copia de seguridad / --instancia pgbak -j 4 -U probackup --stream -b delta --temp-slot

[postgres @ ecos75r018-meijia-31-150 postgresql] $ pg_probackup-12 backup -B / postgresql / backup / --instance pgbak -j 4 -U probackup --stream -b delta --temp-slotINFO: Inicio de copia de seguridad, pg_probackup versión: 2.4.8, instancia: pgbak, ID de respaldo: QLOMCV, modo de respaldo: DELTA, modo wal: STREAM, remoto: falso, algoritmo de compresión: ninguno, nivel de compresión: 1 ADVERTENCIA: Esta instancia de PostgreSQL se inicializó sin sumas de comprobación de bloques de datos . pg_probackup no tiene forma de detectar la corrupción del bloque de datos sin ellos. Reinicialice PGDATA con la opción '--data-checksums'.INFO: Copia de seguridad principal: QLOIL1INFO: Tamaño de PGDATA: 161GBINFO: Comience a transferir archivos de datosINFO: Los archivos de datos se transfieren, tiempo transcurrido: 31m: 29s2020-12-21 17: 32: 00.310 CST [30184] REGISTRO: punto de restauración "pg_probackup, backup_id QLOMCV" creado en 26 / C10001782020-12-21 17: 32: 00.310 CST [30184] DECLARACIÓN:

Hora: 2020/12/21 17:00 ~ 2020/12/21 17:35


Copia de seguridad completa (PAGE)

Modificar postgresql.conf

vi postgresql.confarchive_command = 'pg_probackup-12 archive-push -B / postgresql / backup --instance pgbak --wal-file-name =% f'

Eliminar la biblioteca incremental pgbench_inc

postgres = # eliminar la base de datos pgbench_inc;

pg_probackup-12 copia de seguridad -B / postgresql / copia de seguridad / --instancia pgbak -j 4 -U probackup -b completo

[postgres @ ecos75r018-meijia-31-150 ~] $ pg_probackup-12 backup -B / postgresql / backup / --instance pgbak -j 4 -U probackup -b fullINFO: Inicio de la copia de seguridad, pg_probackup versión: 2.4.8, instancia: pgbak, ID de copia de seguridad: QLILZE, modo de copia de seguridad: FULL, modo wal: ARCHIVE, remoto: falso, algoritmo de compresión: ninguno, nivel de compresión: 1 ADVERTENCIA: Esta instancia de PostgreSQL se inicializó sin sumas de comprobación de bloques de datos. pg_probackup no tiene forma de detectar la corrupción del bloque de datos sin ellos. Reinicialice PGDATA con la opción '--data-checksums'.INFO: Espere a que se archive el segmento WAL / postgresql / backup / wal / pgbak / 0000000100000020000000AEINFO: Tamaño de PGDATA: 146GBINFO: Comience a transferir archivos de datosINFO: Los archivos de datos se transfieren, tiempo transcurrido: 38m: 52sINFO: espere pg_stop_backup () INFO: pg_stop backup () ejecutado correctamente vINFO: Sincronizando archivos de copia de seguridad con diskINFO:

Hora: 2020/12/22 08:57 ~ 2020/12/22 09:54


Preparación de datos incrementales:

Inserte 100 millones de datos incrementales (aproximadamente 15G de datos)

pgbench -i -s 1000 -U probackup -h 127.0.0.1 pgbench_inc

Uso del disco:

[postgres @ ecos75r018-meijia-31-150 ~] $ df -h Tamaño del sistema de archivos utilizado Uso disponible% Montado ondevtmpfs 7.5G 0 7.5G 0% / devtmpfs 7.5G 12K 7.5G 1% / dev / shmtmpfs 7.5G 18M 7.5G 1% / runtmpfs 7.5G 0 7.5G 0% / sys / fs / cgroup / dev / mapper / vg00-lv_root 20G 9.9G 8.8G 53% // dev / sda1 501M 335M 130M 73% / boot / dev / sda2 524M 12K 524M 1 % / boot / efi / dev / sdb1 296G 162G 119G 58% / postgresql / data / dev / sdc1 296G 159G 122G 57% / postgresql / backuptmpfs 1.5G 0 1.5G 0% / run / user / 0 / dev / sdd1 296G 122G 159G 44% / postgresql / archivo


Copia de seguridad incremental (PAGE)

pg_probackup-12 backup -B / postgresql / backup / --instance pgbak -b PAGE -U probackup

[postgres @ ecos75r018-meijia-31-150 ~] $ pg_probackup-12 backup -B / postgresql / backup / --instance pgbak -b page -j 4 -U probackupINFO: Inicio de la copia de seguridad, pg_probackup versión: 2.4.8, instancia: pgbak, ID de copia de seguridad: QLPZ42, modo de copia de seguridad: PAGE, modo wal: ARCHIVE, remoto: falso, algoritmo de compresión: ninguno, nivel de compresión: 1 ADVERTENCIA: Esta instancia de PostgreSQL se inicializó sin sumas de comprobación de bloques de datos. pg_probackup no tiene forma de detectar la corrupción del bloque de datos sin ellos. Reinicialice PGDATA con la opción '--data-checksums'.INFO: Espere a que se archive el segmento WAL / postgresql / backup / wal / pgbak / 0000000100000029000000C8 INF: Copia de seguridad principal: QLPUN6INFO: Tamaño de PGDATA: 161GBINFO: Extrayendo el mapa de páginas de los bloques modificados extraído, tiempo transcurrido: 142 segINFO: Iniciar la transferencia de archivos de datosINFO: Los archivos de datos se transfieren, tiempo transcurrido: 5m: 16sINFO:

Hora: 2020/12/22 10:33 ~ 2020/12/22 10:44


Resultados de la prueba:

Esta vez, solo se proporcionan el proceso de prueba y uno de los resultados de la prueba:

modo
DELTA
PÁGINA
Copia de seguridad completa

Volumen de datos: 146G / 10 mil millones

Tiempo total: 52min

Transmisión de datos: 34min

Verificación de datos: 18min

Volumen de datos: 146G / 10 mil millones

Tiempo total: 57min

Transmisión de datos: 39min

Verificación de datos: 18min

Respaldo incremental

Volumen de datos: 15G / 100 millones

Tiempo total: 35min

Transmisión de datos: 31min

Verificación de datos: 4min

Volumen de datos: 15G / 100 millones

Tiempo total: 11min

mapa + transmisión de datos: 8min

Verificación de datos: 3min

A través de esta prueba, se encontró que el modo delta y la copia de seguridad completa en modo página son significativamente diferentes. En términos de copia de seguridad incremental, el modo página es tres veces más eficiente que la copia de seguridad en modo delta (en este nivel de datos, mayor es la cantidad de datos, mayor puede ser la diferencia)


Supongo que te gusta

Origin blog.51cto.com/15080020/2654733
Recomendado
Clasificación