[Orca-dev] Couple of minor updates - make sure I'm not smokin'something
Sean O'Neill
sean at seanoneill.info
Sun May 2 14:15:17 PDT 2004
Blair Zajac wrote:
> Sean O'Neill wrote:
>
>>Curious if folks could qualify my assumptions for some modifications
>>I've made to the orcallator.se script.
>>
>>TCP per Packet "Data" Size:
>>http://www.seanoneill.info/orca/o_gauge_tcp_InDt_per_p,o_gauge_tcp_OutDt_per_p-hourly.html
>>
>
>
> Hi Sean,
>
> This link is broken. In fact, the entire site has broken links.
> The home page has broken image links.
Yeah, I haven't rebuilt my web page total since moving back to the DC area.
>
> This looks like good stuff.
>
>
>>This attempts to show how big the data payload is for each TCP packet
>>both for incoming and outgoing. This isn't computed with the time
>>interval in mind. This is purely taking the amount of data
>>received/transmitted during the time interval and dividing that by
>>number of packets received/transmitted. This only shows data payload.
>>It doesn't include the 40 bytes of IP and TCP header.
>>
>>With this in mind, it is very possible to see the TCP Bits/Sec graph
>>showing 0 or very close to 0 bits/sec *but* this graph (and the graph
>>below) showing data.
>>
>>This graph computes data as:
>>
>>TCP Incoming Data Payload size = tcp_InDataBytes / tcp_InDataSegs
>>TCP Outgoing Data Payload size = tcp_OutDataBytes / tcp_OutDataSegs
>>
>>TCP per Packet Header Overhead (%):
>>http://www.seanoneill.info/orca/o_gauge_tcp_InOvH_pct,o_gauge_tcp_OutOvH_pct-hourly.html
>>
>>This graph takes the payloads computed above and figures out how much of
>>the packet was "overhead". So:
>>
>>TCP In Overhead = 100 * 40 / ("TCP Incoming Data Payload size" + 40)
>>TCP Out Overhead = 100 * 40 / ("TCP Outgoing Data Payload size" + 40)
>
>
> I would probably calculate this using the original data instead of
> the "> TCP Incoming Data Payload size" and it's a little clearer.
>
> TCP In Overhead = 100 * (40*tcp_InDataSegs/(40*tcp_InDataSegs+tcp_InDataBytes))
>
Hair splitting but no problem - I'll tweak it.
>
>>This may be useful for those cases where a server is servicing an
>>application but you don't really know how but the data payload is and
>>how much of those packets of overhead. For instance, a chat service or
>> SSH service is generall going to have a small data payload with a lot
>>of packet overhead. An FTP service would generally be the opposite -
>>max data payload and very small overhead.
>
>
> Yes definitely.
>
> What also would be interesting are these statistics on a per port
> basis. This would be harder data to gather, unless we could get
> per port data from orcallator.se.
>
Yep, already thinking about that. Just wanted to get a comment or two
on the logic and then apply the same to the interface code.
I think that code would be added to orcallator.se in the measure_net()
function and an Orca specific p_netstat_class.se script would need to be
added to lib/SE/[23].[32] directories. I need to look at the
p_netstat_class.se code a bit.
At the interface level, it only collects packet in/out and bits in/out
without qualifying the protocols but this would still be very useful
data - IMHO.
> And also, of course, you could do this with UDP also.
>
Well, not really. The mib.se code doesn't provide a lot of information
relating to UDP. All I saw in /opt/RICHPse/include/mib.se is for the
following for UDP:
mib struct mib2_udp_t {
uint udpInDatagrams; // # of UDP datagrams sent upstream { udp 1 }
uint udpInErrors; // # of recv'd dg's not dlvrable (other) { udp 3 }
uint udpOutDatagrams; // # of dg's sent { udp 4 }
int udpEntrySize; // { udp 5 }
};
Curious if anyone knows what udpEntrySize means ?
/usr/include/inet/mib2.h shows basically the same structure for udp
statistics - nada mucho.
> Do you have the patches available for review?
>
Well, let me tweak based on your suggestion and add in the interface
code then I'll submit for review.
Sean
More information about the Orca-dev
mailing list