i played around with BufferSize, increasing it from 65536 to 1048576 by powers
of two; i didn't see an effect on the number of dropped pings (my test
'mass-ping' session was pinging 510 addresses, of which ~360 were responding)
i wanted 'netstat -s' output to show me dropped ICMP messages, i.e. messages
overwritten in a buffer ... but 'wanting' and 'happening' are too different
things ... i don't see a counter tracking such an event:
Icmp:
588970 ICMP messages received
285250 input ICMP message failed.
ICMP input histogram:
destination unreachable: 362369
timeout in transit: 21028
echo requests: 11771
echo replies: 193799
2375973 ICMP messages sent
0 ICMP messages failed
ICMP output histogram:
destination unreachable: 29077
echo request: 2335125
echo replies: 11771
IcmpMsg:
InType0: 237002
InType3: 363685
InType8: 11812
InType11: 21028
OutType0: 11812
OutType3: 29098
OutType8: 2396328
i tried assigning '100' to $POE::Component::Client::Ping::PKTSIZE
($POE::Component::Client::Ping::PKTSIZE = 100); i didn't notice a change in behavior
setting Parallelism makes a difference though; i'm at 120 at the moment, which
is larger, and simpler, than the ~30+ i can reach using my home-built throttling
scheme
i'm trying to think of additional ways in which i can explore this issue.
-printing the value of BufferSize, as a way of uncovering what the OS default
is? what i really want is to find some counter which tracks how many buffer
slots get overwritten ... and of course, that counter may not exist
-i've poked through /proc/sys/net/ipv4/icmp* -- i see ways to throttle
*outbound* ICMP replies ... but nothing related to how the box accepts inbound
frames
-dig up copies of Stevens' and Comer's books, see if they discuss how this is
typically handled
additional suggestions?
--sk
Tony Cook wrote:
[...]
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