Cómo calcular Bloques en Memoria de Cubos

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:

  1. Hacer una copia limpia de los cubos sin nivel de redundancia
  2. Si el cubo es muy grande considerar en aumentar la memoria al RedunMgr.bat.
  3. Ejecutar el comando RedunMgr.bat -cmnd=showgridfile <path to cube>, para cada cubo y anotar el valor devuelto de blocks.
    1. Recomendamos guardar los resultados en un archivo agregando a la línea de ejecución -logfile=path/nombrearchivo
    2. Nota: Dependiendo del tamaño del cubo, hay que esperar a que se genere el informe sobre los datos solicitados
  4. Al valor devuelto para cada cubo (si se quiere, recomendable), aumentarle un 10%.

    Ejemplo de Resultado
    Directory 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)

  5. (warning) Nota: Si el cubo tiene niveles de redundancia, en el resultado aparecerán tantos Directorios como niveles de redundancia. Se recomienda sumar todos los Blocks.
  6. Sumar todos los valores generados por cada cubo.
  7. Ir al archivo O3Server.properties ubicado en la raiz de la instalacion de O3 (o en el O3Server_custom.properties), y buscar la siguiente propiedad:
    ideasoft.o3.pool.totalMaxCache=250000 (default) y asignarle el valor calculado en el paso anterior. Guardar el archivo.
    1. Se recomienda agregar esta property al archivo O3Server_custom.properties (si no lo tiene, crearlo en la raiz de la instalación).
  8. Modificar la cantidad máxima de bloques que se espera trabajar. Existen dos opciones:

    1. en el O3 BI AdmServer ir a Cubos Activos, en el panel central que indica los Cubos Activos y por cada uno de ellos, se observa en la pestaña General de la Configuración de la caché de cubos y uso lo distintos valores. modificar el Valor de la Casilla Máximo y guardar con el botón Aplicar.
    2. en cada archivo nombredelcubo.properties (que se encuentra en la misma ubicación del cubo),
  9. En el caso de querer declarar los cubos que quedan en caché al levantar el Servicio de O3BI JBoss, con la totalidad de los cubos. Eso es en O3 BI AdmServer -> Servidor Actual -> Pestaña Cubos.

  10. Marcar los cubos en prioridad de lectura incial 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.


Referencias:

Ver Comando RedunMgr: Formas de Calcular Redundancia