zoukankan      html  css  js  c++  java
  • macOS 修改最大文件描述符、最大用户进程数

    ===============================================

     2020/2/24_第1次修改                       ccb_warlock

     

    ===============================================

    由于最近在新的macOS上开发.net core项目,针对新改造的api接口需要做压测,而系统默认的文件描述符的设置并不适合开发压测,所以需要想方法修改为我需要的配置。

    网上找了半天都是一堆临时解决方案,即当前设置有效,一重启又恢复到最初的系统配置,对于开发人员来说显然不方便,所以搜了半天终于找到了永久生效的修改方案,这里作个记录。

     

    版本:macOS Catalina 10.15.3

     


    一、新增配置文件

    # 配置系统的最大文件描述符

    sudo vi /Library/LaunchDaemons/limit.maxfiles.plist

    # 将下面的内容添加到limit.maxfiles.plist中,wq保存。

    <?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>65535</string>
              <string>65535</string>
            </array>
          <key>RunAtLoad</key>
            <true/>
          <key>ServiceIPC</key>
            <false/>
        </dict>
      </plist>

    PS.这里我将文件描述符修改为65535,虽然macOS相比linux可以设置的更大,不过这个配置对于做压测已经够了。

    # 配置系统的最大进程数

    sudo vi /Library/LaunchDaemons/limit.maxproc.plist

    # 将下面的内容添加到limit.maxproc.plist中,wq保存。

    <?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.maxproc</string>
          <key>ProgramArguments</key>
            <array>
              <string>launchctl</string>
              <string>limit</string>
              <string>maxproc</string>
              <string>2048</string>
              <string>2048</string>
            </array>
          <key>RunAtLoad</key>
            <true />
          <key>ServiceIPC</key>
            <false />
        </dict>
      </plist>

    PS.貌似macOS的最大进程数最大只能配置2500,至于为什么不能像linux一样配置到65535,看资料是因为macOS限制了最大进程数为2500(https://apple.stackexchange.com/questions/368011/how-to-increase-the-max-user-processes-hard-limitmojave/368020)。

    macOS Server则是根据内存大小,限制了最大进程数的值(https://support.apple.com/zh-cn/HT3854

     


    二、 修改文件权限

     # 修改2个文件的权限

    chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
    chown root:wheel /Library/LaunchDaemons/limit.maxproc.plist

    三、更新配置 

    # 查看更新之前的参数

    ulimit -a

     

    # 更新配置

    launchctl limit

    # 重启os

    sudo reboot

    # 重启后,查看更新之后的参数

    ulimit -a

    可以看到,更新后的“open files”和“max user processes”已经修改成了需要设置的值了。


    参考资料:

    1.https://blog.csdn.net/mingtingjian/article/details/77675761

  • 相关阅读:
    Spring----MyBatis整合
    VueRouter案列
    Vue-Router
    axios用法
    Fetch的使用
    Promise用法
    组件之间传值
    局部组件注册方式
    学习组件与模板
    如何实现new,call,apply,bind的底层原理。
  • 原文地址:https://www.cnblogs.com/straycats/p/12359674.html
Copyright © 2011-2022 走看看