Veritas-bu

[Veritas-bu] Network performances dropped since upgrade

2005-02-25 10:08:56
Subject: [Veritas-bu] Network performances dropped since upgrade
From: andre.lue-fook-sang AT thomson DOT com (Lue-Fook-Sang, Andre)
Date: Fri, 25 Feb 2005 10:08:56 -0500
It's probably good to check if the interface is taking errors, also
netstat -ni 
netstat -k bge0


-----Original Message-----
From: veritas-bu-admin AT mailman.eng.auburn DOT edu
[mailto:veritas-bu-admin AT mailman.eng.auburn DOT edu] On Behalf Of Dave 
Markham
Sent: Friday, February 25, 2005 5:22 AM
To: Paul Keating
Cc: veritas-bu AT mailman.eng.auburn DOT edu
Subject: Re: [Veritas-bu] Network performances dropped since upgrade


Paul Keating wrote:

>The V240 has GigE interfaces.
>
>If you plugged it into a 100Mb/s switch, it may not have auto 
>negotiated properly.
>
>Try hardcoding the interfaces to 100FD
>
>Try this:
>bash-2.03# dmesg|grep -i full
>And/or
>bash-2.03# dmesg|grep -i half
>
>And see what it reports your net connection as.
>
>If you find an entry reporting half, that's your prob.
>
>Drop a script in /etc/rc2.d with the following in it: (assuming you're 
>using bge0....or replace with correct # for each interface in use.)
>
>ndd -set /dev/bge0 adv_1000fdx_cap 0
>ndd -set /dev/bge0 adv_1000hdx_cap 0
>ndd -set /dev/bge0 adv_100fdx_cap 1
>ndd -set /dev/bge0 adv_100hdx_cap 0
>ndd -set /dev/bge0 adv_10fdx_cap 0
>ndd -set /dev/bge0 adv_10hdx_cap 0
>ndd -set /dev/bge0 adv_autoneg_cap 0
>
>I'm not sure, but I think you may be able to specify for the bge device 
>in general, and specify the instance separately, but I've just done it 
>as above, and it works.
>
>Paul
>
>  
>
>>-----Original Message-----
>>From: veritas-bu-admin AT mailman.eng.auburn DOT edu
>>[mailto:veritas-bu-admin AT mailman.eng.auburn DOT edu] On Behalf Of 
>>Louis-Luc Le Guerrier
>>Sent: February 24, 2005 3:56 PM
>>To: veritas-bu AT mailman.eng.auburn DOT edu
>>Subject: [Veritas-bu] Network performances dropped since upgrade
>>
>>
>>Hello,
>>I'm using Netbackup with Solaris 9.
>>We're on a 100Mbps network, and we just upgraded the server from an 
>>Ultra Enterprise 2 to a SunFire V240, and we also upgraded from NB 5.0 
>>MP2 to NB 5.1MP2.
>>
>>The problem is that network performances dropped as if we were still 
>>running at 10Mbps, but we upgraded to 100Mbps a few months ago. When 
>>we were at 10 Mbps, backups completed with rates like from 300KB/s to 
>>600KB/s, when we upgraded to 100Mbps, performances rose to 2000KB/s to 
>>5000KB/s and some- times more. This was good on the old server with 
>>old NB version, but since the upgraded, performances dropped to
>>400KB/s to 500KB/s on nearly all Netbackup clients, but
>>I checked and both the server and clients are running at
>>100Mbps according to 'ndd' command.
>>
>>Does anyone have any clue about what's happening, and how
>>to restore full performances, at least as good as on the
>>old setup?
>>
>>Thanks.
>>Louis-Luc
>>
>>_______________________________________________
>>Veritas-bu maillist  -  Veritas-bu AT mailman.eng.auburn DOT edu 
>>http://mailman.eng.auburn.edu/mailman/listinfo/veritas-bu
>>
>>
>>    
>>
>
>_______________________________________________
>Veritas-bu maillist  -  Veritas-bu AT mailman.eng.auburn DOT edu 
>http://mailman.eng.auburn.edu/mailman/listinfo/veritas-bu
>
>  
>
To add to this check the network switch is not set to auto negotiation. 
I have had issues with bge interfaces before where some switches were 
set incorrectly and the ndd commands defaulted back.

I work out the instance and set it in a script as below :-


#!/usr/bin/sh

#v2.0 21-09-04 Fixed BGE again after testing. DM

version=`awk '/^#v/ {print $1}' $0| tail -1|cut -c3-6`

#Set bge/ce interface speed to 100(default) or 1000 Mbps speed=100

do_check_bge()
{
        DEV=$1
        INST=$2

        echo "+-------------------+"
        echo ""
        if [ `ndd $DEV${INST} link_status` = 0 ];then
                echo "$DEV${INST} status is down";else
                echo "$DEV${INST} status is up"
        fi

        if [ `ndd $DEV${INST} link_speed` = 1000 ];then
                echo "$DEV${INST} link speed 1000 Mbps";else
                        if [ `ndd $DEV${INST} link_speed` = 100 ];then
                                echo "$DEV${INST} link speed 100 Mbps";else
                                echo "$DEV${INST} link speed 10 Mbps"
                        fi
        fi

        if [ `ndd $DEV${INST} link_duplex` = 0 ];then
                echo "$DEV${INST} link mode Half-Duplex";else
                echo "$DEV${INST} link mode Full-Duplex"
        fi

        if [ `ndd $DEV${INST} adv_autoneg_cap` = 0 ];then
                echo "$DEV${INST} Auto-Negotiation-OFF";else
                echo "$DEV${INST} Auto-Negotiation-ON"
        fi
        if [ `ndd $DEV${INST} adv_pause_cap` = 0 ];then
                echo "$DEV${INST} PAUSE capability Off(default)";else
                echo "$DEV${INST} PAUSE capability On(Send and receive)"
        fi
        if [ `ndd $DEV${INST} adv_asym_pause_cap` = 0 ];then
                echo "$DEV${INST} Asymetric PAUSE Off(default)";else
                echo "$DEV${INST} Asymetric PAUSE On"
        fi
}

do_set_bge()
{
        DEV=$1
        INST=$2
        SPEED=$3
        if [ $SPEED = 1000 ];then
                echo "Setting $DEV${INST} adv_1000fdx_cap 1"
                ndd -set $DEV${INST} adv_1000fdx_cap 1
                echo "Setting $DEV${INST} adv_1000hdx_cap 0"
                ndd -set $DEV${INST} adv_1000hdx_cap 0
                echo "Setting $DEV${INST} adv_100fdx_cap 0"
                ndd -set $DEV${INST} adv_100fdx_cap 0
                echo "Setting $DEV${INST} adv_100hdx_cap 0"
                ndd -set $DEV${INST} adv_100hdx_cap 0
        fi
        if [ $SPEED = 100 ];then
                echo "Setting $DEV${INST} adv_1000fdx_cap 0"
                ndd -set $DEV${INST} adv_1000fdx_cap 0
                echo "Setting $DEV${INST} adv_1000hdx_cap 0"
                ndd -set $DEV${INST} adv_1000hdx_cap 0
                echo "Setting $DEV${INST} adv_100fdx_cap 1"
                ndd -set $DEV${INST} adv_100fdx_cap 1
                echo "Setting $DEV${INST} adv_100hdx_cap 0"
                ndd -set $DEV${INST} adv_100hdx_cap 0
        fi
        echo "Setting $DEV${INST} adv_autoneg_cap 0"
        ndd -set $DEV${INST} adv_autoneg_cap 0
        echo "Setting $DEV${INST} adv_pause_cap 0"
        ndd -set $DEV${INST} adv_pause_cap 0
        echo "Setting $DEV${INST} adv_asym_pause_cap 0"
        ndd -set $DEV${INST} adv_asym_pause_cap 0
}

# Workings

case "$1" in
'check')

        # Check bge or ce speed
        if [ $speed -ne 100 ];then
                if [ $speed -ne 1000 ];then
                        echo "ERROR: bge/ce interface speed not set 
correctly."
                        echo "Adjust 'speed=' at beginning of script. 
(Default = 100)"
                        exit
                fi
                y=y # Remove if can sort or loop above
        fi

       ### BGe gigabit interface different
        BGE_=`nawk '$NF == "\"bge\"" {print $2}' /etc/path_to_inst | uniq`
        if [ "$BGE_" != "" ];then
                echo ""
                echo "NOTE:\nIf adv_asym_pause_cap = 1 adv_pause_cap = 1 
pauses are received"
                echo "If adv_asym_pause_cap = 1 adv_pause_cap = 0 pauses 
are transmitted"
                for x in ${BGE_};do
                        do_check_bge /dev/bge $x $speed
                done

                ANS=`ckyorn -p "Do you want to force all nics $speed 
Mbps , Full-Duplex, Auto Negotiation
off?~"`
                if [ $ANS = y ] || [ $ANS = Y ] || [ $ANS = YES ] || [ 
$ANS = yes ];then
                        echo "Setting Interfaces"
                        for x in ${BGE_};do
                                do_set_bge /dev/bge $x $speed
                        done
                fi
        fi

;;

'start')

        # Check bge speed
        if [ $speed -ne 100 ];then
                if [ $speed -ne 1000 ];then
                        echo "ERROR: bge interface speed not set 
correctly.\nAdjust 'speed=' at beginning
of script. (Default = 100)" |mailx -s "S70report_force_nics startup 
error" root
                        exit
                fi
                y=y
        fi

        ### Bge gigabit interface different
        BGE_=`nawk '$NF == "\"bge\"" {print $2}' /etc/path_to_inst | uniq`
        if [ "$BGE_" != "" ];then
                for x in ${BGE_};do
                        do_set_bge /dev/bge $x $speed
                done
        fi

;;

'version')
        # Display Version info
        echo ""
        echo "\t$0 Version[$version]"
        echo ""
        exit 0
;;

*)
        echo "Usage: $0 { check | start | version }"
        exit 1
esac
exit 0


_______________________________________________
Veritas-bu maillist  -  Veritas-bu AT mailman.eng.auburn DOT edu
http://mailman.eng.auburn.edu/mailman/listinfo/veritas-bu