Re: Udp sending performance in Gbit Ethernet
- From: JTL <JTL@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 17 Jan 2006 04:38:01 -0800
"Stephan Wolf [MVP]" wrote:
> So I am *not* actually suprised by the behaviour you describe. We often
> saw a sudden drop of perfromance for certain packet (frame) sizes. And
> there can be just so many reasons like interrupts and DMA.
>
> If the number of interrupts increases by a factor of 3 as you describe,
> then there is probably some limit reached in the driver or in the card
> such as the maximum DMA block size or alike, which forces the driver to
> split frames into several DMA transfers. Since some cards generate an
> interrupt at the end of each DMA transfer, this would be an
> explanation.
I do not know the internals of the Windows driver model, so I really cannot
make any comments. Your comments seem reasonable, but they still leave the
following open points:
- Why is it faster to send 3 UDP packets of size 1024 bytes than 1 of size
1025?
- Why is it twice as fast to send one fragmented UDP packet, where both
fragments are of size 1400+ bytes than two un-fragmented packets of size 1400
bytes?
- Why there is no such phenomenon with TCP? It sends large packets also.
(And achieves the same speeds than UDP with 1024 byte datagrams)
- Why increasing the number of applications (sockets) increase the throughput?
- Why increasing the number of threads with one socket increase the
throughput?
As I said, I don't know the internals of the windows networking, but the
points above in my opinion belong to the TCP/IP stack implementation, not
driver implementation.
Furthermore:
- I have tested this with at least 4 different cards (see below), each of
them has the same problem.
- This problem does not exist in Linux, when run on exactly the same hardware.
See also:
http://www.chch.demon.co.uk/wintest/wintest.html
> 1. Try different versions of the driver for the card (even older ones).
This I have not tried.
> 2. Try some other card (different chipset) along with its driver.
This I have tried.
> 3. Holler at the card vendor's support (don't expect too much).
This I have not tried.
> BTW, which chipset does your GigE card use (Marvell, Broadcom, Intel,
> etc.)?
I had the list in one of the previous posts, but at least:
- 3Com 3c2000
- Intel PRO/1000 GT
- Compaq Server NIC
- NVIDIA NForce chipset (motherboard) NIC
I would be suprised, if each of the manufacturers above would make the same
mistake in their drivers...
Greetings
Juha
.
- Follow-Ups:
- Re: Udp sending performance in Gbit Ethernet
- From: m
- Re: Udp sending performance in Gbit Ethernet
- From: Stephan Wolf [MVP]
- Re: Udp sending performance in Gbit Ethernet
- References:
- Re: Udp sending performance in Gbit Ethernet
- From: Stephan Wolf [MVP]
- Re: Udp sending performance in Gbit Ethernet
- From: JTL
- Re: Udp sending performance in Gbit Ethernet
- From: Stephan Wolf [MVP]
- Re: Udp sending performance in Gbit Ethernet
- Prev by Date: Re: Lookaside list or ExAllocatePool/ExFreePool
- Next by Date: Re: MCE BDA Driver works incorrect.
- Previous by thread: Re: Udp sending performance in Gbit Ethernet
- Next by thread: Re: Udp sending performance in Gbit Ethernet
- Index(es):
Relevant Pages
|