cancel
Showing results for 
Search instead for 
Did you mean: 

Command bptestbpcd slow in 8.2+

X2
Moderator
Moderator
   VIP   

Backgroud: I have a script which takes all unique clients from the NetBackup master and then runs bptestbpcd to get client version for all clients (1100+). The command is used as:

/usr/openv/netbackup/bin/admincmd/bptestbpcd -connect_timeout 20 -verbose -client <clientFQDN>

The output is then processed to my requirements to be added to my client audit spreadsheet.

Observation: I have noticed that since I upgraded the backup domain to 9.0 (from 8.2), the script is taking much longer. Earlier it used to take around 30-35 minutes. Now it is taking 3+ hours.

From what I can see on Command Ref Guide, nothing changed which would cause this. Any suggestions?

 

7 REPLIES 7

Hamza_H
Moderator
Moderator
   VIP   

Hello,

I don't think things are changed regarding bptestbpcd, but after the upgrade, it may happen a lot of communication issues, and by that, it takes longer to the master server to connect to clients.

why do you use the -connect_timeout? you can use bptestbpcd -verbose -client <clientFQDN>, I just did a test trying to connect to a client that doesn't have nbu client on it, and it took more than one minute to complete the command (even with connect_timeout 5), so imagine if you have more than 100 clients with no nbu client? , do you still have the same number of clients or it increased?

 

my suggest is that you take the result of your 3+ hours test and exclude the clients that doesn't succeed.

 

good luck

 

quebek
Moderator
Moderator
   VIP    Certified

Hey

I can't comment on why bptestbpcd is slow...

but instead you can try to leverage this one.... should provide you the information you are gathering

bpgetconfig -s client_name

 

hope this will speed up your query...

X2
Moderator
Moderator
   VIP   

@quebek Yes, that still works better. I use bpgetconfig -g <clientName> in another of my scripts. It took around 30-35 min to finsh (normal).

I had decided for bptetsbpcd to satisy my OCD to get the same length for NetBackup version e.g. 8.3.0.1, 8.2.0.0, 9.0.0.0, etc. Whereas bpgetconfig gives varied length for "Version Name". However, on looking at it again, I think I will try collecting the "client protocol level". Any idea if/when client protocol level changes from version number e.g. because of an EEB?

 

X2
Moderator
Moderator
   VIP   

@Hamza_H -connect_timeout was for those clients which may not respond (funny state of NetBackup client, very busy machine, or no client install). I had fine tuned the command to timeout after 20s as it was taking a minute to timeout. This was a couple of years ago and it had reduced the colleciton time from around 3hrs to 30-40min.

Your mention prompted me to test again. On a few machines: 1) vApp with no client took around 7s to timeout (5s) and without timeout it took around 13s. 2) VM without client yet, timed out after around 15s.without timeout and then 7s without timeout (5s). 3) Old physical server takes around 9s to respond (v8.1.1) with (5s) or without timeout.

Number of clients has definitely increased from around 1150 to 1225 in the last year or so.Not a significant increase to justify longer collection time if everything else remained same. Plus I already cleanup the unique clients list before the collection by removing NDMP clients, Microsoft FS virtual nodes, etc.

Thanks for the pointers. As a quick fix, I will run the audit using bpgetconfig as @quebek mentioned. Will continue with bptestbpcd investigation later.

 

Hamza_H
Moderator
Moderator
   VIP   

glad that you could get help :)

one mroe thing, I don't think that calculating how much seconds means something, because bptestbpcd checks cache first, so it may give you 15s for the first attempt, then 7s later..

And as you said, if the purpose of doing this, is to get the verion, you can use bpgetconfig which is quicker..

good luck

jnardello
Moderator
Moderator
   VIP    Certified

You probably already have a handle on this but for anyone else interested, something like the below ought to still work (been a little while since I tried it). Feed it using whatever client list works for you, bpplclients just looks at the existing policy configurations (whether active or not!). 

#!/bin/ksh

PATH=$PATH:/usr/openv/netbackup/bin:/usr/openv/netbackup/bin/admincmd

echo "      Client         \t         OS Level        \t Release"

echo "=====================\t ========================\t ======="

for c in `bpplclients -allunique -noheader | awk '{print $3}'`

do

  bpgetconfig -s $c -L -A | \

    awk -F'=' '{if($1~/Client.OS/){os=$2}

                if($1~/Patch/)   {p=$2}

                if($1~/Protocol/){v=$2}}

                END { if(p~/^ *$/){r=v}else{r=p}

                      printf("%-22s\t%-25s\t%s\n","'$c'",os,r)} '

done

Just run it via a script or console window because as they noted, a several hour run would not be out of the ordinary if there's a lot of timeouts and it'd suck to lose the run because of a dropped ssh session. =) 

 

X2
Moderator
Moderator
   VIP   

As I was still thinking about the time, it dawned on me that I still have a domain on 8.2. So ran my collection script on it. This domain has lesser clients as the main load is Oracle/MS SQL backups. The script ran in normal time 6min for about 200 clients. This makes me think that something has changed in NetBackup since 8.2 than my environment.