Optimizando el Desempeo de la Base de Datos
OpenEdge
Gustavo Murillo
Gerente de Desarrollo
Agenda
Lo Bsico
Discos
A tomar en cuenta
Algunas capacidades RDBMS OpenEdge
3
99.9% Uptime. 24h x 365d
10 000 usuarios simultneos sin baja rendimiento
10 000 transacciones simultneas sin baja de
rendimiento
9 quintillones de registros por tabla
32 Exabytes
Escabilidad hasta 32 procesadores comprobada
Operaciones OnLine sobre la base de datos
Caractersticas mejoradas de auto-tunning
Auditoria
RDBMS V9 vs RDBMS V10
Mejoras en versiones
Rendimiento General
Progress v8 -> OpenEdge 10
+ 43%
Progress v9 -> OpenEdge 10
+ 10 %
Areas de almacenamiento Type II
+ 24%
Rendimiento SQL
Progress v9 -> OpenEdge 10
Insert con Indice
Update con Indice
Select sin indice
+ 35%
+ 26%
+ 56%
throughput (tps)
Rendimiento Out of the Box
800
700
600
500
400
300
200
100
0
30
no tuning
simple tuning
Paso 1: Tamao del Buffer Pool
Colocar B tan alto como sea posible para
alcanzar un porcentaje de buffer hits superior
a 95%.
Debe estarse vigilante a que no baje debajo
de 85%.
proserve mybd B 32000
Paso 2: Reintentos de spinlock (Enterprise)
Si el sistema tiene ms de un procesador
debe utilizarse el spin
Objetivo: reducir la espera de recursos de
procesador.
Utiliza un sistema de spin, en lugar de uno de
semaforos y colas menos eficiente.
proserve mybd B 32000 spin 50000
Paso 3: Inicializar log writer de BI (Enterprise)
Escribe los contenidos de nuevos datos de BI
a disco asincronicamente y en background.
Le da al servidor ms tiempo para hacer
trabajo til.
probiw mydb
Paso 4: Usar APW (Enterprise)
Asynchronous page writer es un proceso
10
asincrnico y en background que escribe los
cambios recientes de la base de datos.
Asi no tiene que hacerlo el servidor, ni tiene
que ser hecho en cada fin de ciclo de
checkpoint.
proapw mydb
proapw mydb
Paso 5: Incrementar tamao del bloque BI
Incrementarlo hace ms eficiente la escritura
11
del before image.
En sistemas Unix se puede usar 8K
proserve mybd B 32000 spin 50000
biblocksize 8
Paso 6: Incrementar tamao cluster BI
Un mayor tamao de cluster de BI
12
incrementa la duracin de los ciclos de
checkpointing.
Lo cual permite ms tiempo para que los
bloques modificados de la base de datos
sean escritos a disco.
proutil mybd C truncate bi -bi 4096
Paso 7: Aadir buffers al BI
Usados para mantener un log de registros de
13
nuevas transacciones antes de que sean
escritos al log de transacciones.
Tener mltiples buffers provee de ms
tiempo al writer de BI para hacer las
escrituras.
Se reduce la probabilidad de esperar para
completar un cambio a la base de datos.
proserve mybd B 32000 spin 50000
biblocksize 8 bi 4096 bibufs 25
Paso 8: Configuracin Inicial de la Base Datos
Separar ndices y datos en diferentes reas
No tener datos en el rea de Schema
Repartir las reas en diferentes discos
Utilizar ms extents de tamao fijo que
14
variable.
Evitar colocar el BI y el AI en el mismo disco
o filesystem, y evitar colocarlos en el mismo
disco o filesystem donde estn los datos.
throughput (tps)
Resultados en el rendimiento
800
700
600
500
400
300
200
100
0
581
30
no tuning
15
simple tuning
Efectos de tuning en -spin
680 679
spin setting
16
100
,000
40,0
00
120
2,00
0
133
436
800
700
600
500
400
300
200
100
0
Efectos de tuning en -B
500
450
400
350
300
250
200
150
100
50
0
260
32,000
348
332
128,000
256,000
295
64,000
-B setting
17
Configuracin de discos
Usar ms de un disco para la base de datos
Varios discos pequeos pueden dar mejor
rendimiento que uno grande.
Utilizar discos de alta velocidad, mnimo
15000 rpm.
Discos SCSI siguen dando mejor rendimiento
que SATA II.
Evitar RAID 5.
Se pierde un 45% rendimiento vs striping and
mirroring
18
Areas de datos Tipo II
Mejor rendimiento I/O.
Mejor utilizacin de espacio.
Alta concurrencia.
40% mejor rendimiento para aplicaciones de
19
uso intensivo de base de datos.
Las tablas temporales utilizan estas reas.
Otros aspectos a tomar en cuenta
Incrementar tamao de mensaje Mm
Usar brokers mltiples (4GL y SQL)
Incrementar mximo de servidores (-Mn y
20
Mpb)
Decrementar clientes por servidor (-Ma)
Archivos temporales en discos locales (-T)
Un solo ASSIGN en lugar de varios.
Sistema de Archivos en Linux
400
350
throughput (tps)
300
348
292
313
267
250
200
150
100
50
0
ext3
JFS
XFS
ReiserFS
ReiserFS presenta resultados muy errticos no usar!
21
Otros sistemas de archivos recomendados
22
Sistema Operativo
File System
Solaris
VxFS o UFS
AIX
JFS o JFS2
HP-UX
NO HFS
Windoze
NTFS
Linux
ext3, XFS, JFS
Ideas para Windows
Eliminar spyware y similares
Quitar servicios innecesarios
Screen Saver negro
Eliminar Office (al menos el indexador)
Usar NTFS (Nunca FAT-32 o FAT-16)
Incrementar tamao cluster
Quitar Nombres cortos archivo, compartir
archivos, Virus Scan, Decoraciones GUI
23
Ideas SQL
Revisar ndices, tener los necesarios, ni ms,
ni menos.
Ejecutar Update Statistics
Utilizar mejor APIs de ODBC y JDBC
Revisar DataDirect.com/developer para
documentos tcnicos.
Actualizar a 10.1B.
24
Aumentar la seguridad Implemente Cluster
25
Obtener mejor rendimiento es sencillo
Preguntas?
Muchas Gracias
[email protected]
www.progress.com
www.psdn.com
26