Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:oracle_rac_global_cache_block_lost

Netzwerkprobleme auf einen Oracle RAC Interconnect untersuchen - Global Cache Block Lost Events auf Netwerkprobleme zurückführen

11g/12c

In einer RAC Umgebung werden jeden Tag über den OEM zur selben Zeit viele „Global Cache Block Lost“ Events protokolliert.

Zugleich fallen bei der Untersuchung des Interconnects „dropped network packages“ ins Auge.

Analyse

siehe auch ⇒ Troubleshooting gc block lost and Poor Network Performance in a RAC Environment (Doc ID 563566.1)

Überprüfen mit ethtool:

 ethtool -S eth0 | grep -i drop

Ring Buffer des Nics prüfen:

 ethtool -g eth0

Falls „Pre-set maximums“ » „Current hardware settings“ sollte der Buffer vergrößert werden.

Flow Control überpürfen:

ethtool -a eth0
 
Pause parameters for eth0:
Autonegotiate:  off
RX:             on
TX:             on

Falls off, einschalten mit „ethtool -K eth0 rx on“ siehe auch ⇒ LINUX: POOR RAC-INTERCONNECT PERFORMANCE AFTER UPGRADE FROM RHEL3 TO RHEL4/OEL4 (Doc ID 400959.1)

"Receive fragment size" anpassen

Eine Lösung bei einer höheren Anzahl vn TX drops (TX-DRP) kann von das Erhöhen der „Receive fragment size“ auf der Netzwerkkarte sein.

Aktuellen Wert überprüfen (Emulex network interface) , falls extra gesetzt:

cat /sys/bus/pci/drivers/be2net/module/parameters/rx_frag_size
8192
 
#setzen in der 
cd /etc/modprobe.d
 
vi be2net.conf
..
options be2net rx_frag_size=8192
..

siehe auch ⇒ http://support.hp.com/us-en/document/c03854197 für ein Emulex network interface

Monitoring

Ein Script für das Monitoring erstellen. Das Script fragt das Netzwerk Interface des Interconnects (bei Bonding das Bond Interface verwenden!) ab und rolliert jeden Tag den Logfile

#!/bin/sh
#
#
#  read the interface statistic and write the information to a log file
#
########## Environment ##############
DAY_OF_WEEK="`date +%w`"
export DAY_OF_WEEK 
 
DAY="`date +%d`"
export DAY
 
# Home of the scrips
SCRIPTPATH=$(cd ${0%/*} && echo $PWD/${0##*/})
SCRIPTS=`dirname "$SCRIPTPATH{}"`
export SCRIPTS
 
########## Configuration ##############
INTERFACE="eth1"
HOST=`hostname -a`
 
 
######### Log file Handling ###########
OVERWRITE="false"
 
# check if a new file must be created
if [ ! -e $SCRIPTS/${HOST}_${INTERFACE}_${DAY}.log ]; then
  OVERWRITE="true"
else
  # check the age of the file
  # if older then one day overwrite
  FILEAGE_SECONDS=`date -d "now - $( stat -c "%Y" $SCRIPTS/${HOST}_${INTERFACE}_${DAY}.log ) seconds" +%s`
 
  if [ -z "$FILEAGE_SECONDS"  ]; then 
    FILEAGE_SECONDS=0;
  fi
 
  if [ "$FILEAGE_SECONDS" -gt 86400 ]; then
		OVERWRITE="true"
  fi
 
fi
 
if [ "$OVERWRITE" = "true" ]; then
	echo "----------------------- start new Day ${DAY} -------------------------------"          >  $SCRIPTS/${HOST}_${INTERFACE}_${DAY}.log 2>&1
	echo "Iface       MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg"   >> $SCRIPTS/${HOST}_${INTERFACE}_${DAY}.log 2>&1
fi
 
 
# get the figures
/bin/netstat -i | /bin/grep "${INTERFACE} "  | /bin/awk '{print strftime("%Y-%m-%d %r") ":" $0; }' >> $SCRIPTS/${HOST}_${INTERFACE}_${DAY}.log
 
#

Über die Crontab einen Job einrichten der jede Minute das Interface des Interconnects abfragt:

crontab –l
…
#get the network statistic from the interconnect interface
*/1 * * * * /opt/oracle/diag/network/racdb01/checkDroppedPackage.sh
..

Für die Auswertung werden die Log Files sortiert und per „awk“ zeilenweise eingelesen, der Wert der „dropped packages“ wird pro Zeile in eine Variable gespeichert, und mit dem Wert der Zeile zuvor verglichen.

Ergibt sich eine Differenz sind Netzwerk Pakete verloren gegangen und der Wert wird protokolliert.

Die erzeugten Logfiles auswerten mit:

#Auswertung mit
cat *.log | awk 'NR>4 { wert=$8-zuvor; if ( wert != 0) eol="  Package Losts"; else eol="" ; print $0 "  -> " wert eol } {zuvor=$8}'| grep Package | grep -v AM | grep -v Day | sort

Verbesserungsvorschlag⇒ Wert beim Überlauf von einem Tag auf den anderen passt nicht durch den Header in jeder einzelnen Datei.

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
linux/oracle_rac_global_cache_block_lost.txt · Zuletzt geändert: 2015/03/28 17:28 von Gunther Pippèrr