mac 下修改打开文件最大数量

"too many open files"是一个常见的Linux错误,它表明进程已达到它可以同时打开的文件的最大数量。这个限制包括所有类型的文件,包括网络连接

这个限制是由操作系统级别的配置参数定义的,你可以使用ulimit命令查看和修改这些参数。例如,要查看当前的打开文件限制,你可以运行:

在 macOS 系统中,你可以使用 launchctl 命令来查看和修改打开文件的最大数量。

首先,要查看当前的限制,你可以在终端中运行以下命令:

launchctl limit maxfiles

这将会显示当前的软限制(第一列)和硬限制(第二列)。

要提高这个限制,你可以使用以下命令。例如,以下命令将软限制设置为 8192,硬限制设置为 20480:

sudo launchctl limit maxfiles 8192 20480

请注意,这些更改只会影响当前的会话。如果你想要永久地更改这些限制,你需要创建或修改一个系统级别的 plist 文件。以下是一个示例步骤:

  1. 使用文本编辑器(如 vim 或 nano)创建一个名为 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>8192</string>
      <string>20480</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>ServiceIPC</key>
    <false/>
  </dict>
</plist>
  1. 把这个文件保存到 /Library/LaunchDaemons/ 目录下,文件名为 limit.maxfiles.plist
sudo mv limit.maxfiles.plist /Library/LaunchDaemons/
  1. 修改文件的所有者和权限:
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo chmod 644 /Library/LaunchDaemons/limit.maxfiles.plist
  1. 使用 launchctl 加载新的配置:
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist

现在,每次你的系统启动时,打开文件的限制都会被设置为你在 plist 文件中指定的值。

评论栏