> > Thanks for the clarifications Venu. I was measuring bandwidth by 
> > checking 'kstat -n' and as you mentioned, it's probably not 
> accurate.
> >
> > Using 'netstat -k', I see that the bandwidth is capped correctly.
> 
> OK, while the stats may not be accurate, but the output from 
> netstat should not be very different from that calculated 
> using kstat. netstat gets the kstat values for vnic1, gets 
> the increment over the last time you read (via netstat) and 
> gives the average input/output for that time duration.
> Perhaps you are not computing the values from kstat -n correctly?
> I believe netstat uses the following logic:
> 
> e.g for input:
>       input kbps = diff in (rbytes64 in kb) since prev read / 
> time since
>                    last read;
> 
> similarly for output.

That's exactly how I am measuring it. My python code looks like this

timestamp = time.time()
output = commands.getoutput('kstat -n vnic%d | grep bytes' %
get_coid(coname)).split('\n')
obytes = float(re.split('\s+', output[0])[2])
rbytes = float(re.split('\s+', output[1])[2])
return rbytes + obytes

One question. The output of 'kstat -n vnic?' looks like this (I just
rebooted, so most numbers are zero)

module: unix                            instance: 0     
name:   vnic1                           class:    flow
        crtime                          109.436840067
        ierrors                         0
        ipackets                        268
        obytes                          0
        oerrors                         0
        opackets                        0
        rbytes                          24488
        snaptime                        520.551380521

module: vnic                            instance: 1     
name:   vnic1                           class:    net
        brdcstrcv                       1977
        brdcstxmt                       0
        collisions                      0
        crtime                          484.32586088
        ierrors                         2361
        ifspeed                         200000000
        ipackets                        268
        ipackets64                      268
        multircv                        0
        multixmt                        0
        norcvbuf                        0
        noxmtbuf                        0
        obytes                          0
        obytes64                        0
        oerrors                         0
        opackets                        0
        opackets64                      0
        rbytes                          24488
        rbytes64                        24488
        snaptime                        520.552493729
        unknowns                        0

As you can see, there are a set of stats for 'flow' and for 'net'. Which
ones should I be using? So far, I am taking the first set of stats.

Pradeep


Reply via email to