[sheepdog] [PATCH v4] try to set RLIMIT_NOFILE to recommended value
Liu Yuan
namei.unix at gmail.com
Wed Mar 25 03:59:03 CET 2015
On Tue, Mar 17, 2015 at 05:30:47PM +0300, Vasiliy Tolstov wrote:
> Signed-off-by: Vasiliy Tolstov <v.tolstov at selfip.ru>
> ---
> sheep/sheep.c | 29 +++++++++++++++++------------
> 1 file changed, 17 insertions(+), 12 deletions(-)
>
> diff --git a/sheep/sheep.c b/sheep/sheep.c
> index fc53ec9..cad8293 100644
> --- a/sheep/sheep.c
> +++ b/sheep/sheep.c
> @@ -523,19 +523,24 @@ static int create_work_queues(void)
> static void check_host_env(void)
> {
> struct rlimit r;
> + int ret;
>
> - if (getrlimit(RLIMIT_NOFILE, &r) < 0)
> - sd_err("failed to get nofile %m");
> - /*
> - * 1024 is default for NOFILE on most distributions, which is very
> - * dangerous to run Sheepdog cluster.
> - */
> - else if (r.rlim_cur == 1024)
> - sd_warn("Allowed open files 1024 too small, suggested %u",
> - SD_RLIM_NOFILE);
> - else if (r.rlim_cur < SD_RLIM_NOFILE)
> - sd_info("Allowed open files %lu, suggested %u", r.rlim_cur,
> - SD_RLIM_NOFILE);
> + ret = getrlimit(RLIMIT_NOFILE, &r);
> + if (ret < 0) {
> + sd_err("failed to getrlimit");
> + } else {
> + if (r.rlim_cur < SD_RLIM_NOFILE) {
> + r.rlim_cur = SD_RLIM_NOFILE;
> + r.rlim_max = SD_RLIM_NOFILE;
> + if (setrlimit(RLIMIT_NOFILE, &r) != 0) {
> + sd_warn("Failed to set open files limit to suggested %lu",
> + r.rlim_cur);
After applying the patch, even with root, we still can't set limit for fd. Get
following err in log:
check_host_env(537) Failed to set open files limit to suggested 6144000, Operation not permitted
I think still need to modify files in /etc...
Thanks,
Yuan
> + } else {
> + sd_info("Allowed open files set to suggested %lu",
> + r.rlim_cur);
> + }
> + }
> + }
>
> if (getrlimit(RLIMIT_CORE, &r) < 0)
> sd_debug("failed to get core %m");
> --
> 2.2.2
>
> --
> sheepdog mailing list
> sheepdog at lists.wpkg.org
> https://lists.wpkg.org/mailman/listinfo/sheepdog
More information about the sheepdog
mailing list