vi /etc/sysctl.conf 跳到最后,加入下面的内容:
# 增大文件系统缓存到 1M
kern.maxvnodes=131072
# 允许最多 65536 个进程
kern.maxproc=65536
# 同时最多打开 65536 个文件
kern.maxfiles=65536
# 并发连接最大 65536
kern.somaxconn=65536
# 保留的最少连接数
kern.sominconn=256
kern.maxclusters=32768
# 增大 UDP 接收/发送缓存到 64K
net.inet.udp.recvspace=65536
net.inet.udp.sendspace=65536
注意:虚拟机测试只加上 kern.maxvnodes=65536 即可,其他的不必加 了,否则会有各种问题。独立机器的可以加上。 保存退出,reboot。不能正常启动的就把除 kern.maxvnodes 以外的数字调小或 者禁用再试。
操作系统通常给每个进程能打开的文件数量通常有一个系统级的限制,可以在命令行中用ulimit -a命令查看。
多数程序运行时,会报出"too many openfiles",此时即可根据实际情况进行调整。
比如做为网关、缓存、邮件等等,默认的设置就不够用了。