(Near) Real-Time Bandwidth Monitoring

(Near) Real-Time Bandwidth Monitoring

am 14.01.2008 03:57:10 von Brendan Grant

While there are plenty of performance counters that allow you to learn about
the bandwidth usage of an IIS6 server... they all seem to update only after
a given connection has completed (ie after a file has already been
downloaded), something that doesn't work well for me as I need to be able to
learn about downloads from the server of large files at a slow rate.

Is there anyway using performance counters or some other mechanism that can
be scripted or programmed against to get a near real time approximate
snapshot of current bandwidth usage of IIS itself (or a given web site)?

Thanks,
Brendan

Re: (Near) Real-Time Bandwidth Monitoring

am 14.01.2008 07:22:59 von David Wang

On Jan 13, 6:57=A0pm, "Brendan Grant" wrote:
> While there are plenty of performance counters that allow you to learn abo=
ut
> the bandwidth usage of an IIS6 server... they all seem to update only afte=
r
> a given connection has completed (ie after a file has already been
> downloaded), something that doesn't work well for me as I need to be able =
to
> learn about downloads from the server of large files at a slow rate.
>
> Is there anyway using performance counters or some other mechanism that ca=
n
> be scripted or programmed against to get a near real time approximate
> snapshot of current bandwidth usage of IIS itself (or a given web site)?
>
> Thanks,
> Brendan


IIS6 does not have any counters or any other mechanism to get [near]
real-time approximate bandwidth usage.

You can get that approximation with an ISAPI Filter listending on
SendRawData which tracks the bytes being sent. However, be aware that
such an ISAPI Filter will kill performance on the server in its
monitoring, especially for the static file download scenario because
it will prevent kernel response caching *AND* disable efficient data
transfer via TransmitFile. This is potentially a 10x decrease in
performance.

You can decide whether the real-time monitoring benefits is worth the
devastating effect of monitoring. Basically, if you can watch
something, you affect its cacheability and potentially kernel-user
transitions (to update progress).


//David
http://w3-4u.blogspot.com
http://blogs.msdn.com/David.Wang
//

Re: (Near) Real-Time Bandwidth Monitoring

am 14.01.2008 18:04:24 von Brendan Grant

Thanks, looks like I'll be dusting off the good ole C++ side of Visual
Studio.


"David Wang" wrote in message
news:a9d5906d-9736-463a-94cd-2fd007e774d9@e23g2000prf.google groups.com...
On Jan 13, 6:57 pm, "Brendan Grant" wrote:
> While there are plenty of performance counters that allow you to learn
> about
> the bandwidth usage of an IIS6 server... they all seem to update only
> after
> a given connection has completed (ie after a file has already been
> downloaded), something that doesn't work well for me as I need to be able
> to
> learn about downloads from the server of large files at a slow rate.
>
> Is there anyway using performance counters or some other mechanism that
> can
> be scripted or programmed against to get a near real time approximate
> snapshot of current bandwidth usage of IIS itself (or a given web site)?
>
> Thanks,
> Brendan


IIS6 does not have any counters or any other mechanism to get [near]
real-time approximate bandwidth usage.

You can get that approximation with an ISAPI Filter listending on
SendRawData which tracks the bytes being sent. However, be aware that
such an ISAPI Filter will kill performance on the server in its
monitoring, especially for the static file download scenario because
it will prevent kernel response caching *AND* disable efficient data
transfer via TransmitFile. This is potentially a 10x decrease in
performance.

You can decide whether the real-time monitoring benefits is worth the
devastating effect of monitoring. Basically, if you can watch
something, you affect its cacheability and potentially kernel-user
transitions (to update progress).


//David
http://w3-4u.blogspot.com
http://blogs.msdn.com/David.Wang
//