加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 无法使用sysctl更改每个进程的最大打开文件数

发布时间:2020-12-14 01:28:47 所属栏目:Linux 来源:网络整理
导读:我的实际限制是1024: $ulimit -acore file size (blocks,-c) 0data seg size (kbytes,-d) unlimitedscheduling priority (-e) 0file size (blocks,-f) unlimitedpending signals (-i) 95979max locked memory (kbytes,-l) 64max memory size (kbytes,-m) un
我的实际限制是1024:

$ulimit -a
core file size          (blocks,-c) 0
data seg size           (kbytes,-d) unlimited
scheduling priority             (-e) 0
file size               (blocks,-f) unlimited
pending signals                 (-i) 95979
max locked memory       (kbytes,-l) 64
max memory size         (kbytes,-m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes,-p) 8
POSIX message queues     (bytes,-q) 819200
real-time priority              (-r) 0
stack size              (kbytes,-s) 10240
cpu time               (seconds,-t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes,-v) unlimited
file locks                      (-x) unlimited

我试过了:

sysctl -w fs.file-max=100000

并附加到/etc/sysctl.conf:

fs.file-max = 100000

即使在Ubuntu 16.04和CentOS 6上运行sysctl -p以重新加载设置和/或重新启动之后,也没有成功.

它始终保持设置为1024.

这个问题是other question的延伸.

解决方法

对于Ubuntu 17.04.见 this solution.

在Ubuntu 17.04之前:

我不知道为什么上面的设置不起作用,但似乎你可以通过使用/etc/security/limits.conf file获得相同的结果.

在/etc/security/limits.conf中设置限制

sudo bash -c "echo '* - nofile 10240' >> /etc/security/limits.conf"

> *表示所有用户.您可以使用特定的用户名替换它.
> – 表示软件和硬件均为type of limit to be enforced.硬件只能由超级用户修改. Soft可以由非root用户修改,并且不能优于hard.
> nofile是最大打开文件数参数.
> 10240是新限制.

刷新

注销并重新登录.sudo sysctl -p似乎不足以重新加载.

您可以通过以下方式检查新限制:

ulimit -n

在Ubuntu 16.04和CentOS 6上测试.灵感来自于answer.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读