Cálculo de Bloques en Memoria de un Cubo
Contexto
Problemas de Performance en un Servidor con O3 al levantar los cubos en memoria (y no a demanda cargando y manteniendo en memoria solo los bloques que se van utilizando para cada consulta).
Análisis
En este análisis vamos a trabajar con el cubo sin redundancia, ya que no será necesaria la redundancia del mismo cuando tenemos todo el cubo en memoria.
Procedimiento
Si no tenemos la oportunidad de tener el cubo sin redundancia, con el mismo comando RedunMgr podemos quitar los niveles (delete).
Pasos a seguir:
- Hacer una copia limpia de los cubos sin nivel de redundancia
- Si el cubo es muy grande considerar en aumentar la memoria al RedunMgr.bat.
- Ejecutar el comando RedunMgr.bat -cmnd=showgridfile <path to cube>, para cada cubo y anotar el valor devuelto de blocks(Nota: Dependiendo del tamaño del cubo, hay que esperar a que se genere el informe sobre los datos solicitados)
Al valor devuelto para cada cubo (si se quiere, recomendable), aumentarle un 10%.
Ejemplo de ResultadoDirectory 0: dirsCount: 7535 tuplesCount: 1143651 Depth -> max: 9 avg: 4 total: 34471 Size -> max: 32 avg: 11 total: 83412 Splits -> max: 5 avg: 2 total: 19992 Childs -> max: 32 avg: 0 total: 7534 Blocks -> max: 24 avg: 4 total: 35278
Tomar el valor de Blocks (35278)
- Nota: Si el cubo tiene niveles de redundancia, en el resultado aparecerán tantos Directorios como niveles de redundancia. Se recomienda sumarlos todos los Blocks.
- Sumar todos los valores generados por cada cubo.
- Ir al archivo O3Server.properties ubicado en la raiz de la instalacion de O3 y buscar la siguiente propiedad:
ideasoft.o3.pool.totalMaxCache=250000 (default) y asignarle el valor calculado en el paso anterior. Guardar el archivo. - Modificar en cada archivo nombredelcubo.properties (que se encuentra en la misma ubicación del cubo), la cantidad máxima de bloques que se espera trabajar.
- Hay que declarar los cubos que quedan en cache, con la totalidad de los cubos. Eso es en el AdmServer -> Servidor->Servicios->Cubos: Cantidad de cubos en caché y la propiedad en running
- Marcar los cubos en prioridad Muy Alta.
Si el cubo tiene redundancia, se cargará el cubo en caché con la Redundancia Menor.
Es recomendable trabajar con cubos sin redundancia calculada.
A partir de la versión O3BI 6.4.1 se pueden cargar completamente los cubos en memoria al iniciar el servidor. En versiones anteriores consultar a Nuestro Soporte Técnico.
Referencias:
Ver Comando RedunMgr: O3 Redundancy Manager