AW: does the underlying implementation (not public) ofDatagramSocketImp's send receive method busy wait
Bernd Eckenfels
ecki at zusammenkunft.net
Tue Dec 19 21:25:01 UTC 2017
Hello,
it is a bit unlikely that there is much difference (especially for as low as 200 packets), but I would recommend you actually try it with your specific traffic pattern and System load. Not much a Java developer can say about various Linux kernel versions and their drivers.
Gruss
Bernd
--
http://bernd.eckenfels.net
Von: Andy Nuss
Gesendet: Dienstag, 19. Dezember 2017 15:31
An: Alan Bateman; net-dev at openjdk.java.net; Paul Marks
Betreff: Re: does the underlying implementation (not public) ofDatagramSocketImp's send receive method busy wait
Aside from the fact that I should watch out for blasting too many packets at once, and realizing that this one "server/controller" machine has to control 100 or more client receiving machines, with smallish packets, is there any advantage at all relative to the linux kernel in having more than one UDP port open for sending out? I.e. say the controller has a queue of 200 packets to spray out, is it sufficient to use just one java thread and one UDP outbound port, or would it give the kernel more throughput to send out the packets with 5 threads and 5 sockets or even more? The packets are 10 bytes and/or 140 bytes.
On Tuesday, December 19, 2017, 2:53:30 AM PST, Alan Bateman <Alan.Bateman at oracle.com> wrote:
On 18/12/2017 21:24, Paul Marks wrote:
So if the kernel decides to block, the thread will be suspended (consuming no CPU) until it's done.
However, the UDP protocol has no concept of flow control, so blasting out packets without any rate limit or acknowledgement mechanism is not a good idea. If you saturate a link in the network, sendto() is not obligated to block, or provide any feedback whatsoever.
That's right and you'll find that most kernels will just discard the packet so the send never blocks.
-Alan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/net-dev/attachments/20171219/5ff63e2d/attachment.html>
More information about the net-dev
mailing list