Forum Discussion

Niklas_Ahl_6703's avatar
Niklas_Ahl_6703
Icon for Nimbostratus rankNimbostratus
Feb 25, 2011

Throughput per virtual server

Hi!

 

 

Not quite sure if my question fits this forum, but I'm trying anyway :)

 

 

I'm trying to measure performance through our LTMs.

 

Is there any way to get throughput numbers per virtual server?

 

The default graph in the dashboard gives a good indication of the total traffic, but it would be nice to be able to drill down to a specific vip.

 

 

Is it perhaps possible to query with snmp?

 

 

 

/Niklas

 

11 Replies

  • Mike_Lowell_108's avatar
    Mike_Lowell_108
    Historic F5 Account
    Yes, possible with SNMP. The TMOS Management Guide (available on support.f5.com) has an overview of how to work with SNMP on BIG-IP devices. Specifically, you'll want to get data from the F5-BIGIP-LOCAL-MIB, in particular "ltmVirtualServStatClientBytesIn" and "ltmVirtualServStatClientBytesIn".

     

     

    On a BIG-IP device that has SNMP enabled, allowing at least read-only access to a community named "public" you could try the following from the CLI (replace "vs01-http" with your virtual server name):

     

     

    vip="vs01-http"

     

     

    snmpget -v2c -c public 127.0.0.1 \

     

    F5-BIGIP-LOCAL-MIB::ltmVirtualServStatClientBytesIn.\"$vip\" \

     

    F5-BIGIP-LOCAL-MIB::ltmVirtualServStatClientBytesOut.\"$vip\"

     

     

  • Thanks!

     

     

    A few of our applications changes traffic patters quite fast.

     

    Is a big performance penalty to query the VirtualServStats say once a second?

     

     

     

    /Niklas
  • Mike_Lowell_108's avatar
    Mike_Lowell_108
    Historic F5 Account
    I believe the F5 support team usually recommends querying not more frequently than every 10 seconds (see SOL6644 on support.f5.com). Also, the snmp service caches responses for a given table for 2 seconds, so you won't see any new information querying every second vs. every 2 seconds. If you just want live data (not for archival), try the "bigtop" command on the CLI (see "bigtop -h" for syntax).

     

     

    As for the penalty, it really depends on how large your configuration is. When you query anything from one table, I believe the snmp agent internally fetches the data for that entire table (I'm not certain, you'd have to ask support). So if you have a large configuration (many virtual servers for example), your simple query might internally require fetching thousands of data points. You can monitor the impact by watching the CPU usage of snmpd and mcpd while you're doing queries every 2 seconds. Anecdotally, it's been my experience that if you have only tens of virtual servers you can usually get away with a lot of monitoring without any real impact.
  • Thanks for the info!

     

     

    We have lots of vips, so perhaps doing something like this would be better?

     

    while [ 1==1 ]; do bigtop -bytes -nosort -n -vips 10 -nodes 0 -once |grep "10\.254\.254\.10"; sleep 2; done

     

    I could pipe the output of bigtop to a file and do some parsing later.

     

     

    Or is there any other way to capture traffic data?

     

     

    /Niklas
  • Niklas,

     

     

    bigtop is good for general monitoring, but it's not good for highly detailed data. If you watch the timestamp in bigtop you'll notice that not every query is at exactly 2 sec. Using longer update intervals corrects for that, but then you're back to 10-second resolution. bigtop is great for getting an immediate idea of what the general traffic level is for your vips and for the system as a whole, but

     

     

    You may want to take a look at the output from the tmctl command. It's more of an internal tool, and the format of the output and syntax both reflect that, but it would be easier to get the data you are after using tmctl than using parsing bigtop output. tmctl will also let you retrieve far more data than bigtop will.

     

     

     

    --jesse

     

     

  • Great, thanks!

     

     

    Found some interesting numbers in table pool_member_stat.

     

     

    Just out of curiosity... The throughput graph on the dashboard, how does that collect its data?

     

     

    /Niklas
  •  

    I believe that the dashboard retrieves it's data through an internal API. It's not something I've looked into extensively though. I do not think it uses any method that is exposed externally.
  • Hamish's avatar
    Hamish
    Icon for Cirrocumulus rankCirrocumulus
    There's templates for cacti that will pull the stats for Virtual Servers, pools, SSL Profiles, compression profiles etc. You can get them either from here (Search for cacti template) or from the cacti download site (I think the ones available on the cacti site are slightly different, and may not have all the graph templates the one here has).

     

     

    If you have problems, drop me a line.

     

     

    GH
  • On version 12.1.x you have to include the partition too.

    snmpget -v2c -c public 127.0.0.1 F5-BIGIP-LOCAL-MIB::ltmVirtualServStatClientBytesIn.\"/Common/VIP_name\"
    
    • Hamish's avatar
      Hamish
      Icon for Cirrocumulus rankCirrocumulus

      Wow, blast from the past... Yeah, I think that came in somewhere around v11. Circa August 2011 or so IIRC.

       

      The safe way if you're unsure, is to list the VS's using sum-walk... Then use the OID's returned.

       

  • Is this F5-BIGIP-LOCAL-MIB::ltmVirtualServStatClientBytesIn. is concurrent byteIn?

     

    or accumulative ByteIn?

     

    If it's accumulative ByteIn, I think we can't use it to see concurrent Throughput.