Alan Cox schrieb:
Ar Mer, 2006-10-04 am 17:03 +0200, ysgrifennodd Markus Wenke:
Hi,
I wrote a program which handles incomming sockets asynchron.
It can handle up to 140000 connections simultaneously while every
connection send some bytes in both directions continuously.
Armwavingly 64K x 2 per socket worst case for non tcp windowed buffering
128K per socket x 140000 connections
8750MB of RAM
plus other overhead
Assuming you kept the socket buffer limit to 64K by setting it or
disabling window scaling you'd want a about 10GB of RAM for the sockets,
buffering and resources. With tcp windows you'd need more.
The default values of my system are:
SO_SNDBUF = 16384
SO_RCVBUF = 87380
If your data rates are always low, or the link is low latency you could
set the send/receive socket buffer for each connection via setsockopt
down to say 8K and come out needing perhaps 1GB or so instead.
I tried the same scenario with SO_SNDBUF = SO_RCVBUF = 8k, so that the
max memory is ca. 2G
and the oom-killer kills my application at the same time (at 140000
connections).
I can not see in the messages that the system is out of memory,
there is also no swap space used
You can download my /var/log/messages at
http://hemaho.mine.nu/~biber/messages
May you can give me a hint which line/value in the log shows me,
that the system is out of memory?
Thanks in advance
Markus Wenke
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]