Esta página fue traducida automáticamente. Lee el original en inglés. English

Biblioteca de IBSurgeon

Lista rápida de verificación de rendimiento para bases de datos Firebird

Windows

  1. ¿Configurar el plan de ahorro de energía en alto rendimiento (+20% en Windows Server 2016+)?

  2. ¿Configurar la política de caché de escritura para las unidades en Habilitar caché de escritura?

  3. En el caso de RAID, verificar que el controlador moderno esté instalado y que RAID esté configurado correctamente.

Linux

  1. ¿Está Max Open Files configurado en 49999? Compruébalo con cat /proc/$(pgrep firebird)/limits, el valor predeterminado es 4096, auméntalo si es necesario: configúralo en el archivo de servicio de Firebird con LimitNOFILE=49999

  2. Verifica el recuento de VMA con cat /proc/sys/vm/max_map_count, el valor predeterminado es 64K, debe configurarse en 250K: agrega a /etc/sysctl.conf la línea vm.max_map_count=250000

Configuración de Firebird (recomendaciones solo para Firebird 3)

  1. Asegúrate de no usar los valores predeterminados de DefaultDBCacheBuffers, ¡son muy bajos (256 y 8K)! Configura 1024 para SuperClassic y 100K para SuperServer. No uses Classic en Firebird 3, es lento.

  2. Asegúrate de que DefaultDBCacheBuffers no esté sobrescrito en el encabezado de la base de datos: compruébalo con gstat -h database -> Page Buffers, debe ser 0. Configúralo en 0 con gfix -buffers 0.

  3. Configura FileSystemCacheThreshold =100M para usar la caché de archivos del sistema operativo

  4. Para SuperServer, asigna para DefaultDBCacheBuffers menos del 30% de la RAM. Si tienes muchas bases de datos, calcula la memoria para todas ellas y usa databases.conf para configurarlas por separado. Verifica el número total de conexiones y bases de datos con el comando:

fbsvcmgr.exe localhost:service_mgr user sysdba password masterkey info_svr_db_info

  1. Para SuperServer y SuperClassic, configura TempCacheLimit al 25% de la RAM, para Classic - 64M.

  2. Configura LockMemSize=30M, es un buen valor inicial, luego monitorea el crecimiento de la tabla de bloqueos con el comando fblockprint -d databasename y aumenta LockMemSize si es necesario

  3. Configura LockHashSlots=20011, es un buen valor inicial, monitorea Hash Lengths en lockprint

Base de datos

  1. Para bases de datos > 50Gb, usa el tamaño de página máximo: 16Kb (predeterminado 8Kb), para optimizar la lectura de E/S y la profundidad de los índices. Configúralo durante la restauración con el interruptor “page”: gbak**-c -page 16384**

  2. No uses la bandera no_reserve para bases de datos que no sean de solo lectura. Elimínala con **gfix -**use reserve

  3. Monitorea la diferencia entre los marcadores de transacciones (OIT, OST, OAT, Next) de gstat -h.

  4. Un valor grande (OST-OIT) significa que la base de datos probablemente contiene muchas versiones basura y requiere sweep. Programa un sweep explícito para la noche con gfix -sweep

  5. Un valor grande (Next-OAT) significa una transacción de escritura activa larga que bloquea la recolección de basura. Verifica las tablas MON$ para ver qué aplicación mantiene la transacción abierta y corrígelo.

Prueba de 5 minutos para estimar el rendimiento de Firebird

Usa el script de código abierto INSERT-UPDATE_DELETE: www.ib-aid.com/dbtestActualmente, el servidor más rápido probado ha mostrado 18140 registros insertados por segundo, ¿cuál será tu resultado?

¿Cómo mejorar el rendimiento de Firebird más allá de este ajuste simple?

Prueba el servicio de optimización de Firebird de IBSurgeon www.ib-aid.com/perf: sabemos cómo hacer que tu Firebird funcione más rápido.