From e32dcad00db267201bea624fe5880dba89f74e8a Mon Sep 17 00:00:00 2001 From: liqiang Date: Tue, 28 Feb 2023 11:00:35 +0800 Subject: [PATCH 1/2] set udsproxyd file nums limit to 65536 Signed-off-by: liqiang --- qtfs/ipc/uds_main.c | 13 +++++++++++++ qtfs/ipc/uds_main.h | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/qtfs/ipc/uds_main.c b/qtfs/ipc/uds_main.c index 108fa23..e3cd551 100644 --- a/qtfs/ipc/uds_main.c +++ b/qtfs/ipc/uds_main.c @@ -19,6 +19,7 @@ #include #include #include +#include #include "../comm.h" #include "uds_main.h" @@ -551,6 +552,17 @@ void uds_hash_remove_dirct(GHashTable *table, int key) } #pragma GCC diagnostic pop +static void uds_rlimit() +{ + struct rlimit lim; + + getrlimit(RLIMIT_NOFILE, &lim); + uds_log("uds proxy fd cur limit:%d, change to:%d", lim.rlim_cur, UDS_FD_LIMIT); + lim.rlim_cur = UDS_FD_LIMIT; + setrlimit(RLIMIT_NOFILE, &lim); + return; +} + static void uds_sig_pipe(int signum) { return; @@ -593,6 +605,7 @@ int main(int argc, char *argv[]) uds_err("proxy hash init failed."); return -1; } + uds_rlimit(); signal(SIGPIPE, uds_sig_pipe); p_uds_var->work_thread_num = atoi(argv[1]); if (p_uds_var->work_thread_num <= 0 || p_uds_var->work_thread_num > UDS_WORK_THREAD_MAX) { diff --git a/qtfs/ipc/uds_main.h b/qtfs/ipc/uds_main.h index 8a6fb3e..e5db8a3 100644 --- a/qtfs/ipc/uds_main.h +++ b/qtfs/ipc/uds_main.h @@ -7,7 +7,7 @@ #define UDS_EPOLL_MAX_EVENTS 64 #define UDS_WORK_THREAD_MAX 1 // Temporarily only supports 1 thread - +#define UDS_FD_LIMIT 65536 extern struct uds_global_var *p_uds_var; extern GHashTable *event_tmout_hash; -- Gitee From 0d5516c7a23909cdc7b5b395e2a7011dfe943473 Mon Sep 17 00:00:00 2001 From: liqiang Date: Tue, 28 Feb 2023 11:00:35 +0800 Subject: [PATCH 2/2] set udsproxyd file nums limit to 65536 Signed-off-by: liqiang --- qtfs/ipc/uds_main.c | 13 +++++++++++++ qtfs/ipc/uds_main.h | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/qtfs/ipc/uds_main.c b/qtfs/ipc/uds_main.c index 108fa23..6c231a4 100644 --- a/qtfs/ipc/uds_main.c +++ b/qtfs/ipc/uds_main.c @@ -19,6 +19,7 @@ #include #include #include +#include #include "../comm.h" #include "uds_main.h" @@ -551,6 +552,17 @@ void uds_hash_remove_dirct(GHashTable *table, int key) } #pragma GCC diagnostic pop +static void uds_rlimit() +{ + struct rlimit lim; + + getrlimit(RLIMIT_NOFILE, &lim); + uds_log("uds proxy fd cur limit:%d, change to:%d", lim.rlim_cur, UDS_FD_LIMIT); + lim.rlim_cur = UDS_FD_LIMIT; + setrlimit(RLIMIT_NOFILE, &lim); + return; +} + static void uds_sig_pipe(int signum) { return; @@ -593,6 +605,7 @@ int main(int argc, char *argv[]) uds_err("proxy hash init failed."); return -1; } + uds_rlimit(); signal(SIGPIPE, uds_sig_pipe); p_uds_var->work_thread_num = atoi(argv[1]); if (p_uds_var->work_thread_num <= 0 || p_uds_var->work_thread_num > UDS_WORK_THREAD_MAX) { diff --git a/qtfs/ipc/uds_main.h b/qtfs/ipc/uds_main.h index 8a6fb3e..e5db8a3 100644 --- a/qtfs/ipc/uds_main.h +++ b/qtfs/ipc/uds_main.h @@ -7,7 +7,7 @@ #define UDS_EPOLL_MAX_EVENTS 64 #define UDS_WORK_THREAD_MAX 1 // Temporarily only supports 1 thread - +#define UDS_FD_LIMIT 65536 extern struct uds_global_var *p_uds_var; extern GHashTable *event_tmout_hash; -- Gitee