Analisando um possível gargalo nas operações do Cache Fusion em um Oracle RAC (2 nodes), um dos itens que precisei validar junto ao time de infraestrutura era o desempenho da rede usada pelo Interconnect, mas antes disso eu precisava confirmar se o Oracle estava usando a rede privada para o Interconnect, pois em alguns casos a comunicação entre as instâncias pode passar pela rede pública.
1) No SQLPLUS, use o oradebug para habilitar o trace no protocolo IPC:
SQL> oradebug setmypid
Statement processed.
SQL> oradebug ipc
IPC information written to the trace file
2) Identifique o arquivo de trace da sessão atual:
SQL> oradebug tracefile_name
/u01/database/diag/rdbms/prd/prd2/trace/prd2_ora_27361.trc
3) No terminal Linux, procure pela string “SSKGXPT” no arquivo de trace retornado anteriormente:
grep SSKGXPT /u01/database/diag/rdbms/prd/prd2/trace/prd2_ora_27361.trc
SKGXP:[2b973d537c48.34]{ctx}: SSKGXPT 0x2b973d539680 flags 0x0 sockno 7 IP 127.0.0.1 UDP 22284 lerr 0
SKGXP:[2b973d537c48.41]{ctx}: SSKGXPTH 0x2b973d538c68 start 1584120661050 last 1584120675202 count 0 thresh 0 tcb 1
SKGXP:[2b973d537c48.88]{ctx}: SSKGXPT 0x2b973d541980 flags 0x0 sockno 10 IP 169.254.230.151 UDP 19741 lerr
Observe a linha com “sockno”, sempre terá uma com IP do 127.0.0.1 e outro com o IP do Interconnect, neste caso é o IP 169.254.230.151.
4) Use o Oracle Interface Configuration para identificar as interfaces de rede configuradas no Oracle Clusterware:
# oifcfg getif eth6 10.100.102.40 global cluster_interconnect eth7 10.14.5.224 global public
Neste exemplo, a interface de rede do interconnect é a eth6.
5) Use o comando “ip route show” no Linux para identificar o roteamento:
# ip route show 10.100.102.40/29 dev eth6 proto kernel scope link src 10.100.102.41 10.14.5.224/27 dev eth7 proto kernel scope link src 10.14.5.231 10.98.0.0/16 dev eth5 proto kernel scope link src 10.98.5.86 169.254.0.0/16 dev eth6 proto kernel scope link src 169.254.230.151 default via 10.14.5.225 dev eth7
O comando acima confirma que a faixa de IP 169.254.0.0/16 é roteada pela placa de rede eth6, a mesma configurada como “cluster_interconnect”.