Arch Linux

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#21587 - [kernel26] out of memory when hundred thousands of tcp connections are opened

Attached to Project: Arch Linux
Opened by zhong jiu (springzhong) - Thursday, 04 November 2010, 05:35 GMT
Last edited by Dan McGee (toofishes) - Monday, 13 December 2010, 16:06 GMT
Task Type Bug Report
Category Kernel
Status Closed
Assigned To Tobias Powalowski (tpowa)
Thomas Bächler (brain0)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:


Additional info:
* package version(s)
* config and/or log files etc.


Steps to reproduce:
The source of serve is like:
ListeningThread listeningThread(this, nPortNum);
listeningThread.nPortNum=6475;
listeningThread.Start();
ListeningThread listeningThread2(this, 6476);
listeningThread2.nPortNum=6476;
listeningThread2.Start();
ListeningThread listeningThread3(this, 6477);
listeningThread3.nPortNum=6477;
listeningThread3.Start();
ListeningThread listeningThread4(this, 6477);
listeningThread4.nPortNum=6478;
listeningThread4.Start();

The source of client is like:
for (int i = 0; i < 60000; i++)
{
this->Connect("127.0.0.1", nPortNum, false, pClientSocket);
this->Connect("127.0.0.1", 6476, false, pClientSocket);
this->Connect("127.0.0.1", 6477, false, pClientSocket);
this->Connect("127.0.0.1", 6478, false, pClientSocket);
}

I want to test the maximum tcp connections of linux in my netbook with 2G memeory.
But I just found It cannot exceed 240000 connections.Then an
"out of memory error" occured. But it looks like there is still a lot of free memory in my computer.

I want to rechange the kernel to accept more TCP connections like one million tcp connections in my network.
But I find there are too many source codes in it.
Could you give me any suggestions?
I have changed my environment like this with epoll:
/etc/security/limits.conf
* soft nofile 802400
* hard nofile 802400
# End of file

cat /proc/sys/fs/file-max
2204218

cat /etc/sysctl.conf
net.ipv4.ip_local_port_range = 1024 65000

cat /proc/sys/fs/epoll/max_user_watches
2500873
This task depends upon

Closed by  Dan McGee (toofishes)
Monday, 13 December 2010, 16:06 GMT
Reason for closing:  No response
Comment by Roman Kyrylych (Romashka) - Thursday, 04 November 2010, 21:02 GMT
please specify kernel version

Loading...