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


相关推荐
2301_800256111 小时前
第九章:空间网络模型(空间网络查询、数据模型、Connected、with Recursive、pgRouting)
网络·数据库·算法·postgresql·oracle
猿小路8 小时前
抓包工具-Wireshark
网络·测试工具·wireshark
Rabbit_QL8 小时前
【网络设置】Docker 自定义网络深度解析:从踩坑到工程实践
网络·docker·容器
浩子智控10 小时前
电子产品三防设计
网络·系统安全
我要升天!10 小时前
Linux中《网络基础》
linux·运维·网络
安科瑞刘鸿鹏1711 小时前
工业自动化系统中抗晃电保护的协同控制研究
运维·网络·嵌入式硬件·物联网
ZStack开发者社区11 小时前
ZStack Cloud 5.5.0正式发布
运维·服务器·网络
2501_9458374311 小时前
云服务器的防护体系构建之道
网络·安全
徐*红11 小时前
物理层-传输介质:双绞线,同轴电缆,光纤,无线传输介质
网络
yuanmenghao13 小时前
CAN系列 — (6) CAN FD 带宽、CPU、中断:工程上是如何一起算的?
网络·驱动开发·单片机·mcu·自动驾驶·信息与通信