===============================================
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>
二、 修改文件權限
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”已經修改成了需要設置的值了。
參考資料: