在 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 错误。


相关推荐
没有黑科技2 小时前
5G网络中频段的分配
网络·5g
RR13352 小时前
macOS 升级 bash 到最新版本
macos
我在北京coding2 小时前
Tableau for mac 驱动
macos
搬码临时工2 小时前
如何通过外网访问内网?哪个方案比较好用?跨网远程连接网络知识早知道
网络·智能路由器
檀越剑指大厂2 小时前
【高效开发工具系列】Blackmagic Disk Speed Test for Mac:专业硬盘测速工具
macos
还有几根头发呀5 小时前
UDP 与 TCP 调用接口的差异:面试高频问题解析与实战总结
网络·网络协议·tcp/ip·面试·udp
阿福不是狗9 小时前
Python使用总结之Mac安装docker并配置wechaty
python·macos·docker
gen_10 小时前
mac环境下的python、pycharm和pip安装使用
python·macos·pycharm
Demisse12 小时前
[华为eNSP] OSPF综合实验
网络·华为
工控小楠12 小时前
DeviceNet转Modbus TCP网关的远程遥控接收端连接研究
网络·网络协议·devicenet·profient