MacOS IDEA启动报Too many open files in system

1.问题
项目中有个需要加载的文件夹内文件太多,启动的时候报Too many open files in system
2.原文地址
原文地址链接
3.问题可能产生的原因
3.1.操作系统打开的文件句柄数过多(内核的限制)
3.2. launchd 对进程进行了限制
3.3. shell 对进程进行了限制
4.具体方案
4.1.内核的限制
4.1.1整个操作系统可以打开的文件数受内核参数影响,可以通过以下命令查看。

$ sysctl kern.maxfiles
$ sysctl kern.maxfilesperproc

4.1.2永久修改,需要在 /etc/sysctl.conf 里加上类似的下述内容,如果没有该文件则自行创建,大小根据需要自行更改。

kern.maxfiles=10240
kern.maxfilesperproc=10240

4.2launchd 对进程的限制
4.2.1获取当前的限制,其中前一个是软限制,后一个是硬件限制。

$ launchctl limit maxfiles

4.2.2系统范围内修改则需要在文件夹 /Library/LaunchDaemons 下创建一个 plist 文件 limit.maxfiles.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>limit.maxfiles</string>
    <key>ProgramArguments</key>
    <array>
      <string>launchctl</string>
      <string>limit</string>
      <string>maxfiles</string>
      <string>65536</string>
      <string>200000</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>ServiceIPC</key>
    <false/>
  </dict>
</plist>

4.2.3修改文件权限

$ sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
$ sudo chmod 644 /Library/LaunchDaemons/limit.maxfiles.plist

4.2.4载入新设定

$ sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist

4.3.shell 的限制
4.3.1通过ulimit -a命令查看现有限制,通过 ulimit -S -n 4096 来修改。如果需要保持修改,可以将这一句命令加入你的 .bash_profile 或 .zshrc 等。

重要修改完以后重启

感谢原作者,在此做记录,方便以后自己使用。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值