OBIEE 12c – Tunning

Documento de referencia:
OBIEE 12c: Best Practices Guide for Infrastructure Tuning Oracle® Business Intelligence Enterprise Edition 12c (12.2.1) (Doc ID 2106183.1)

Uno de los errores mas comunes a la hora de instalar desde cero un producto de Oracle, ya sea Base de datos, EBS, OBIEE; etc, es dejar su configuración por default. En este post vamos a realizar un “Tunning” a la herramienta de explotación de datos de Oracle, o mejor conocida como “OBIEE”. Dejar esta configuración por defecto en un entorno productivo puede conllevar a problemas de disponibilidad cuando el número de usuarios comienza a crecer. Vamos a configurar parámetros, tanto de sistema operativo, como de OBIEE.
Nota importante: En este post omitimos la configuración de la base de datos, dado que no hay un parámetro en particular para mejorar la performance de OBIEE. A la base de datos, le llegaran queries cuyos puntos débiles serán los “Joins” y los “Group by”. Dependiendo del volumen de datos que se analizarán se necesitará más o menos Hardware para soportarlo.

Performance a nivel Sistema Operativo:
En este ejemplo, utilicé como SO un Oracle Linux 7

#Setear el tcp_fin_timeout para liberar mas rapidamente las sesiones que fueron cerradas, liberando los recursos para las siguientes.
/proc/sys/net/ipv4/tcp_fin_timeout -> Setear en 30

#Configuracion del limits.conf
#Modificar el archivo /etc/security/limits.conf, con los siguientes valores.
#Buenas prácticas en OBIEE
*  soft nofile 131072
*  hard nofile 131072
*  soft nproc 131072
*  hard nproc 131072

Performance a nivel Web Logic Server

1)Aumentar los “Connection Pools” de los datasources a 500.

La razón por la cual este valor viene por defecto en un valor pequeño, es debido a que Oracle protege los recursos de nuestra base de datos. Por ello, antes de cambiarlo hay que asegurarse que nuestra base de datos cumpla con los requisitos mínimos para correr OBIEE.
Una vez cambiado los valores, confirmar los cambios yendo a “Activate Changes”. Hacer esto para cada uno de los datasource que indica el weblogic

Configuracion de Stuck Threads
La configuracion mas importante dentro del WebLogic,
Configurar los “Stuck Thread Max Time”, Stuck Thread Timer Interval y Max Stuck Thread Time en 3600. Es el tiempo máximo (en segundos) que un thread se pone en estado “Stuck”, la principal causa de que un Thread se ponga en este estado es debido a reportes que demoran mas de lo seteado en estos parámetros. Hay que ir jugando con estos valores para dejarlo según las necesidades de cada ambiente. Para cambiarlo:
En la consola de weblogic: Environment -> Servers -> bi_server1 -> Tunning

Luego en la pestaña “Overload”, modificar el restante

Configuracion de memoria (JVM)
En este ejemplo, se llevan las memorias de java a 4GB
1) Aumentar la JVM encargada de levantar la instancia de OBIEE
Modificar el archivo /u01/app/Middleware/oracle_common/common/bin/commBaseEnv.sh

2) Aumentar las JVM del bi_server1 y NodeManager
Abrir el archivo /u01/app/Middleware/user_projects/domains/bi/bin/setStartupEnv.sh y editar a partir de la línea 296, las siguientes líneas

        # 64 bit JVM memory settings
        SERVER_MEM_ARGS_64="-Xms4096m -Xmx4096m"
        export SERVER_MEM_ARGS_64
        SERVER_MEM_ARGS_64HotSpot="-Xms4096m -Xmx4096m"
        export SERVER_MEM_ARGS_64HotSpot
        SERVER_MEM_ARGS_64JRockit="-Xms4096m -Xmx4096m"
        export SERVER_MEM_ARGS_64JRockit

En el mismo archivo, editar las lineas, a partir de la 192

       # 64 bit JVM memory settings
        SERVER_MEM_ARGS_64="-Xms4096m -Xmx4096m"
        export SERVER_MEM_ARGS_64
        SERVER_MEM_ARGS_64HotSpot="-Xms4096m -Xmx4096m"
        export SERVER_MEM_ARGS_64HotSpot
        SERVER_MEM_ARGS_64JRockit="-Xms4096m -Xmx4096m"
        export SERVER_MEM_ARGS_64JRockit

Configuracion en la capa OBIPS (Presentation Services Component)
Archivo a modificar: /u01/app/Middleware/user_projects/domains/bi/config/fmwconfig/biconfig/OBIPS/instanceconfig.xml

Agregar el siguientes lineas dentro de bloque <ServerInstance>

        <ThreadPoolDefaults>
          <ChartThreadPool>
             <MinThreads>100</MinThreads>
             <MaxThreads>400</MaxThreads>
             <MaxQueue>2048</MaxQueue>
          </ChartThreadPool>
        </ThreadPoolDefaults>

	 <Cache>
        <CatalogXml>
                <!-- Remove from the cache everything older than N minutes -->
                <MaxAgeMinutes>240</MaxAgeMinutes>
                <MaxLastAccessedSeconds>14400</MaxLastAccessedSeconds>
        </CatalogXml>
        <Query>
                <MaxEntries>5000</MaxEntries>
                <!-- AbsoluteMaxEntries is the enforced maximum number of entries. When this maximum is reached -->
                <!-- subsequent queries will fail until the maximum is no longer exceeded. -->
                <AbsoluteMaxEntries>20000</AbsoluteMaxEntries>
                <!-- CruiseEntries is amount of entries the OracleBI Presentation server tries to maintain in its cache. -->
                <CruiseEntries>3000</CruiseEntries>
                <!-- Forces the cache to attempt to remove an old entry when MaxEntries is exceeded. -->
                <ForceLRU>true</ForceLRU>
        </Query>
  </Cache>
		

Alinear el tiemout seteado en OBIPS con el analytics.
Para ello, ingresar al “Enterprise Manager” de OBIEE (http://yourserver.domain:9500/em), Navegar hasta el biinstance, y modificar el parámetro “Expiry time” a 60 minutos.

Es recomendable setear el parámetro “Session Expiry”, como bien dice el parámetro, setea un timeout cuando la sesión no se encuentra activa. En este caso en el ambiente de laboratorio se setea en 60 minutos.

Configuracion Capa BI Server
Archivo a modificar: $MW_HOME/user_projects/domains/bi/config/fmwconfig/biconfig/OBIS/NQSConfig.INI
Modificar los siguientes parámetros.

INIT_BLOCK_CACHE_ENTRIES = 5000;
SERVER_THREAD_RANGE = 80-1000;
DB_GATEWAY_THREAD_RANGE = 80-1000;
MAX_CACHE_ENTRY_SIZE = 40 MB;
MAX_CACHE_ENTRIES = 5000;
POPULATE_AGGREGATE_ROLLUP_HITS = YES;
WORK_DIRECTORY_PATHS = "/tmp/OBIEE";
SORT_BUFFER_INCREMENT_SIZE = 256 KB;
VIRTUAL_TABLE_PAGE_SIZE = 256 KB;

Se recomienda un reinicio general de OBIEE para que impacten todos los cambios.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.