From 80623b9ac9aedce77d27b7c0a54c1b1c245d9279 Mon Sep 17 00:00:00 2001 From: David Härdeman Date: Mon, 22 Jun 2020 15:50:06 +0200 Subject: Try to bump the max number of fds --- main.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'main.c') diff --git a/main.c b/main.c index f0cc399..8b2e37a 100644 --- a/main.c +++ b/main.c @@ -14,6 +14,8 @@ #include #include #include +#include +#include #include "main.h" #include "signal-handler.h" @@ -565,6 +567,7 @@ main(int argc, char **argv) { struct server *server; unsigned server_count; + struct rlimit old_rlimit; cfg_init(argc, argv); @@ -572,6 +575,23 @@ main(int argc, char **argv) cfg_read(); + /* + * In the splice case we use 4 fds per proxy connection... + */ + if (prlimit(0, RLIMIT_NOFILE, NULL, &old_rlimit) == 0) { + struct rlimit new_rlimit; + + new_rlimit.rlim_cur = old_rlimit.rlim_max; + new_rlimit.rlim_max = old_rlimit.rlim_max; + + if (prlimit(0, RLIMIT_NOFILE, &new_rlimit, NULL) == 0) + debug(DBG_MALLOC, "prlimit(NOFILE): %u/%u -> %u/%u", + (unsigned)old_rlimit.rlim_cur, + (unsigned)old_rlimit.rlim_max, + (unsigned)new_rlimit.rlim_cur, + (unsigned)new_rlimit.rlim_cur); + } + uring_init(); igmp_init(); -- cgit v1.2.3