Verify the database server InfiniBand network is in “connected” mode.
Es semana tuve una visita en un cliente que debia resolver ciertos problemas de performance relacionados al tiempo de acceso al disco.
Sabiendo que nos podiamos encontrar con diferentes tipos de storage, fui preparado.
Mi sorpresa fue al conoce la noticia que esto ocurria en un Exadata. La experiencia me llevo por el camino de hacer un check general del equipo.
Entre el set list para comenzar con un analisis de performance del Exadata, revise cada uno de los siguientes puntos:
- Verify the database server InfiniBand network is in “connected” mode.
- Verify database server InfiniBand network MTU size
- Optimize Scan Rates
- Ensure Database Extent Sizes are at Least 4MB
- Confirm correct latency for Small IOs
- Recommended Memory Configuration
- Capture Performance Baselines
- AWR
- ExaWatcher
- OSWatcher
Iremos viendo el resto de los puntos en los siguientes posteos de Exadata.
Entendiendo por que Infiniband Network debe aparecer con el parametro en status “CONNECTED”
Ocurre que bajo nuestra estructura, los nodos de Base de Datos, buscan la informacion en Disco, en los nodos de Storage, conocidos como CELLServers, que almacenan los CELLDISKS.
Ese intercambio de informacion es peticionado por los nodos de base de datos, a los CELLServers, por medio de los switches de InfiniBand, como parte de la solucion.
Si al verficar que el database server InfiniBand no se encuentra en el modo CONNECTED, la performance de los dispositivos que utilizan TCP/IP atravez de InfiniBand para comunicarse con el servidor de base de datos no sera la mas optima posible, y estaremos desaprovechando nuestro recurso, ademas de provocar una degradacion en los tiempos de respuesta.
Recordemos que verificar este estado, no implica un impacto en la red, pero si requiere reinicio una vez aplicado el cambio de estado.
Como lo verificamos ?
Por medio de una busqueda con grep. En mi caso particular lo estoy haciendo para un Exadata X5.
grep [a-z] /sys/class/net/ib*/mode
Esto es perfectamente aplicable a X2-2 con un output similar al siguiente:
/sys/class/net/ib0/mode:connected /sys/class/net/ib1/mode:connected
Output de X2-8 :
/sys/class/net/ib1/mode:connected /sys/class/net/ib2/mode:connected /sys/class/net/ib3/mode:connected /sys/class/net/ib4/mode:connected /sys/class/net/ib5/mode:connected /sys/class/net/ib6/mode:connected /sys/class/net/ib7/mode:connected
Como introducir el cambio si no esta en Status Connected
Si las salidas no nos retornan el estado CONNECTED, entonces debemos editar a mano el archivo.
/etc/infiniband
Proceso: Localizamos nuestro archivo
[root@exa2adbadm01 infiniband]# ls -l rdma.conf -rw-r--r-- 1 root root 718 Jun 29 2016 rdma.conf [root@exa2adbadm01 infiniband]# pwd /etc/infiniband [root@exa2adbadm01 infiniband]# grep SET_IPOIB_CM rdma.conf SET_IPOIB_CM=no
Editamos el archivo rdma.conf (que puede variar con la verison, por eso recomiendo hacer un grep del parametro) y comprobamos:
[root@exa2adbadm01 infiniband]# grep SET_IPOIB_CM rdma.conf SET_IPOIB_CM=yes
[oracle@exa********.*****.com.ar] > grep [a-z] /sys/class/net/ib*/mode /sys/class/net/ib0/mode:connected /sys/class/net/ib1/mode:connected
Reiniciamos el servidor de base de datos, un nodo a la vez.
Importante: Todos los dispositivos que se comunican con la base de datos, usando TCP/IP atravez de un InfiniBand, SIEMPRE DEBEN estar configurados en CONNECTED.
Esto traera una mejora en la performance en cuanto acceso a los discos.
The Best Regards to my best friend Tito Cruz, a great man and database admin !!