在 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 小时前
PortSwigger靶场之盲 SSRF(服务器端请求伪造)漏洞通关秘籍
前端·网络·安全·web安全
Xの哲學2 小时前
Linux eMMC子系统深度解析:从硬件协议到内核实现
linux·网络·算法·架构·边缘计算
NiKo_W2 小时前
Linux UdpSocket的应用
linux·服务器·网络·内核·线程
稚辉君.MCA_P8_Java2 小时前
深入理解 TCP;场景复现,掌握鲜为人知的细节
java·linux·网络·tcp/ip·kubernetes
小无名呀2 小时前
socket_udp
linux·网络·c++·网络协议·计算机网络·udp
wusam2 小时前
计算机网络实验04:IP与ICMP数据报分析实验
网络·计算机网络·icmp分片报文
我也要当昏君3 小时前
4.4 【2014统考真题】
网络·智能路由器
憧憬成为原神糕手3 小时前
传输层协议 TCP 三次握手/四次挥手 TIME_WAIT
网络·tcp/ip·安全
花阴偷移3 小时前
逆向基础--汇编基础(CS与IP) (05)
网络·汇编·网络协议·tcp/ip
捷米研发三部3 小时前
全自动化立体仓库巷道堆垛机使用西门子1500PLC通过EtherCAT主站转Profinet实现与EtherCAT协议的伺服进行通讯方案案例
网络