开发者社区> 问答> 正文

linux 资源限制,软限制可以超出硬限制吗?

while(f > oldlimit) {
            int decr_step = 16;

            limit.rlim_cur = f;
            limit.rlim_max = f;
            if (setrlimit(RLIMIT_NOFILE,&limit) != -1) break;
            setrlimit_error = errno;

            /* We failed to set file limit to 'f'. Try with a
             * smaller limit decrementing by a few FDs per iteration. */
            if (f < decr_step) break;
            f -= decr_step;
        }

网上说软限制不能超出硬限制,为什么不直接把软限制改成和硬限制一样大呢,如上代码(redis源码)还尝试什么?

展开
收起
落地花开啦 2016-02-28 16:12:54 2420 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    我猜是因为 Redis 不想检查自己有没有更改 rlim_max 的权限,所以直接尝试好了。
    如果直接把软限制改成和硬限制一样大,那还要判断,如果 maxfiles > rlim_max,自己能不能把 rlim_max 改大,如果不能,再设置 rlim_cur 为 rlim_max。检查和设置之间还有竞态

    2019-07-17 18:49:43
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载