Messages in this thread | | | From | "Ulrich Windl" <> | Date | Tue, 14 Feb 2006 08:51:45 +0100 | Subject | net socket load balancing |
| |
Hi!
Occasionally I'm a masochist: Recently I configured PPP dialup over a 2400 baud modem. That modem has some big advantages: It has separate LEDs for about any MODEM state (like Rx and Tx). The device being connected to had a web interface and SSH.
While the web interface was loading a Java applet over https for minutes, I decided to login in via SSH instead.
Looking at the modem's LEDs I could see that the modem was receiving many long chunks, while transmitting infrequent short chunks (packet ACKs) periodically. However the "ssh -v" stalled during key exchange: The device (SSH server) could not send the data in the socket buffer (for over a minute) before the SSH client timed out key exchange.
That (and a periodic netstat on the server box) gave me the impression that the kernel code does not do fair bandwidth sharing between sockets sending to one specific device (those few bytes in the send queue of the SSH socket just stayed there). It seems the send queue for one socket is completely flushed before another socket is considered, regardless of the MTU. While on fast devices this is hardly ever a problem, it can be for slow devices.
I just wanted to point out that problem, together with a cheap method to demonstrate.
For reference, the embedded device has a 48MHz PPC with Linux 2.6.11, and the client was Novell/SuSE Linux 10.0 with Linux 2.6.13.
Regards, Ulrich (renowned for not being subscribed to lkml, always asking for a CC:)
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |