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
