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


相关推荐
0wioiw09 分钟前
跨网络互联技术(Nginx反向代理)
服务器·网络·nginx
报错小能手31 分钟前
计算机网络自顶向下方法55——无线网移动网 移动性管理
网络·计算机网络
❀͜͡傀儡师5 小时前
docker安装mac系统
macos·docker·容器
jun_bai9 小时前
python写的文件备份网盘程序
运维·服务器·网络
爱吃牛肉的大老虎10 小时前
网络传输架构之gRPC讲解
网络·架构
Warren9810 小时前
Python自动化测试全栈面试
服务器·网络·数据库·mysql·ubuntu·面试·职场和发展
云飞云共享云桌面11 小时前
无需配置传统电脑——智能装备工厂10个SolidWorks共享一台工作站
运维·服务器·前端·网络·算法·电脑
库奇噜啦呼11 小时前
【iOS】多线程学习
macos·ios·cocoa
骆驼102411 小时前
手机热点和无线路由器在 IPv6 工作模式上的区别
网络·ipv6
守城小轩12 小时前
Chromium 140 编译指南 macOS 篇:基础环境准备(一)
chrome·macos·chrome devtools·指纹浏览器·浏览器开发·超级浏览器