Ok, as far as I understood, the user can only increase up to the hard limit, which is ~4k in my case (while the kernel limit is ~700k). Fo reverything above, one needs root privileges...
Tony Willoughby wrote: > Use a bash script that calls "ulimit -n X" before starting your daemon. > Where X is the number of concurrent open file descriptors you need. Linux > can support thousands per process. > > See the bash man page for ulimit documentation. > > On Tue, Jul 19, 2016 at 12:12 PM, Alexander Poddey > <[email protected] >> wrote: > >> Hmm, >> >> on linux, the number of file descriptors per process is limited >> (typically to 1024). The total limit on my machine (kernel limit is ~734 >> 000 opened files). >> >> This means a process can accept only 1024 connections?!? >> >> I can tweak the limit as super user of that machine; this however is no >> good >> solution. >> Think of my agent simulation running on a server where I'm not root. Then >> each process can accept only 1024 connections which is way to few... >> >> I wonder why zmq needs a file descriptor per connection... >> >> Alexander >> >> >> >> Doron Somech wrote: >> >> > I'm not sure I understand, each file descriptor is a socket. When >> > zeromq accept tcp socket another file descriptor is created. OS should >> > be able to manage thousands and tens of thousand open descriptor. >> > >> > On Jul 19, 2016 6:56 PM, "Alexander Poddey" <[email protected]> >> > wrote: >> > >> >> >> >> Essentially, the question is: >> >> why does ZMQ consume file descriptors at all? >> >> >> >> >> >> >> >> >> >> > Hi, >> >> > >> >> > I have a setup in C++ on linux where a master process is setting up >> >> > a ZMQ_ROUTER and then forks many child processes, which then connect >> >> > to >> >> that >> >> > router (tcp protocol). >> >> > Whenever a child zmq_connect's to the master, a file descriptor is >> >> > occupied (and assigned to the master process). They get free'ed fine >> >> > when the connection is close. >> >> > >> >> > This however limits the number of interacting processes to the >> >> > number of allowed file descriptors (per process). For me (linux), >> >> > this currently is 1024, which is way to small for my intended use >> >> > (multi-agent / swarm simulation). >> >> > >> >> > Can I prevent this behaviour? >> >> > In my mesaging architecture, each agent connects to 6 sockets, so >> >> > with >> >> 100 >> >> > agents I end up with 600 occupied file descriptors :-( >> >> > >> >> > Alexander >> >> > >> >> > >> >> > _______________________________________________ >> >> > zeromq-dev mailing list >> >> > [email protected] >> >> > http://lists.zeromq.org/mailman/listinfo/zeromq-dev >> >> >> >> >> >> _______________________________________________ >> >> zeromq-dev mailing list >> >> [email protected] >> >> http://lists.zeromq.org/mailman/listinfo/zeromq-dev >> >> >> _______________________________________________ >> zeromq-dev mailing list >> [email protected] >> http://lists.zeromq.org/mailman/listinfo/zeromq-dev >> > > > _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
