在 macOS 上修改 最大文件描述符限制(Too many open files) 和 网络端口相关参数 需要调整系统级配置的详细步骤

在 macOS 上修改 最大文件描述符限制(Too many open files) 和 网络端口相关参数 需要调整系统级配置。以下是详细步骤:


在 macOS 上修改 最大文件描述符限制(Too many open files) 和 网络端口相关参数 需要调整系统级配置的详细步骤---目录


一、临时修改(仅当前终端会话有效)

1. 修改文件描述符限制

bash 复制代码
# 查看当前限制
ulimit -n      # 软限制
ulimit -Hn     # 硬限制

# 临时提高限制(例如设置为 65536)
ulimit -n 65536

2. 修改网络端口相关参数

bash 复制代码
# 查看当前内核参数
sysctl kern.maxfiles
sysctl kern.maxfilesperproc

# 临时修改内核参数(例如设置为 65536)
sudo sysctl -w kern.maxfiles=65536
sudo sysctl -w kern.maxfilesperproc=65536

二、永久修改(系统重启后仍有效)

1. 修改文件描述符限制

方法一:通过 launchd 配置(推荐)

  1. 创建或编辑全局配置文件:

    bash 复制代码
    sudo nano /Library/LaunchDaemons/limit.maxfiles.plist
  2. 添加以下内容(设置软硬限制为 65536):

    xml 复制代码
    <?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>65536</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>ServiceIPC</key>
        <false/>
    </dict>
    </plist>
  3. 加载并生效:

    bash 复制代码
    sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist

方法二:修改 Shell 配置文件(如 .zshrc.bash_profile

bash 复制代码
echo "ulimit -n 65536" >> ~/.zshrc  # 替换为你的 shell 文件
source ~/.zshrc

2. 修改内核参数(网络端口相关)

  1. 编辑内核配置文件:

    bash 复制代码
    sudo nano /etc/sysctl.conf
  2. 添加以下内容(根据需求调整数值):

    conf 复制代码
    kern.maxfiles=65536
    kern.maxfilesperproc=65536
    kern.ipc.somaxconn=65535  # 控制监听队列长度
    net.inet.tcp.msl=1000     # 调整 TCP 最大段生命周期(单位:毫秒)
  3. 应用配置:

    bash 复制代码
    sudo sysctl -p

三、验证修改结果

  1. 检查文件描述符限制:

    bash 复制代码
    ulimit -n
    sysctl kern.maxfiles
    sysctl kern.maxfilesperproc
  2. 检查网络参数:

    bash 复制代码
    sysctl net.inet.tcp.msl
    sysctl kern.ipc.somaxconn

四、注意事项

  1. 权限问题:修改系统级配置需要 sudo 权限。
  2. 数值选择:根据实际需求调整,避免设置过高导致系统资源耗尽。
  3. 应用适配:某些应用(如 Nginx、Node.js)可能需要单独配置其内部文件描述符限制。

通过以上步骤,可以解决 macOS 上因文件描述符或端口限制导致的 Too many open files 错误。


相关推荐
pe7er3 天前
macOS 应用无法打开(权限问题)解决方案
macos·mac
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅5 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
2501_946205525 天前
晶圆机器人双臂怎么选型?适配2-12寸晶圆的末端效应器有哪些?
服务器·网络·机器人
linux kernel5 天前
第七部分:高级IO
服务器·网络
数字护盾(和中)5 天前
BAS+ATT&CK:企业主动防御的黄金组合
服务器·网络·数据库
~远在太平洋~5 天前
Debian系统如何删除多余的kernel
linux·网络·debian
unfeeling_5 天前
Keepalived实验
linux·服务器·网络
坐吃山猪5 天前
OpenClaw04_Gateway常见问题
网络·gateway·openclaw
上海云盾商务经理杨杨5 天前
2025年重大网络安全事件回顾与趋势分析
网络·安全·web安全