On Wed, Feb 11, 2009 at 11:46:31AM -0800, [email protected] wrote:
> i use POE::Component::Client::Ping to emit lots of pings
> 
> and i find that i have to throttle the number of pings i have
> outstanding; otherwise, POE::Component::Client::Ping doesn't see the
> responses
> 
> using a sniffer (tshark running on the box hosting my script), i can
> see that the ICMP Echo Reply frames arrive just fine (as far as tshark
> is concerned)
> 
> i suppose that i could be seeing an effect somewhere in the OS, such
> that if the flow of returning ICMP Echoes exceeds some threshold, the
> NIC sees them, tshark sees them ... but somewhere higher up, a buffer
> overflows and Perl never gets them
> 
> or, i suppose that the flood of responses overwhelms some buffer
> inside POE::Component::Client::Ping
> 
> or perhaps somewhere in between:  perhaps there is an OS buffer which
> holds the ICMP Echo Reply frames and unless POE pulls them out of the
> buffer fast enough, the buffer will overflow and POE won't see those
> responses

I'd be inclined to think it was this.

POE::Component::Client::Ping->spawn has a BufferSize parameter you
could use to check - try setting it fairly large, like 65536, and see
if that reduces the number of lost ping responses.

Tony

Reply via email to