mac修改进程能打开的最大文件数

mac进程能打开的最大文件数,默认只有256
$ulimit -n 
256

这会导致go的服务端运行的时候,如果同时连接的客户端太多,会报错:


2015/08/31 11:47:57 http: Accept error: accept tcp [::]:12621: too many open files; retrying in 10ms
2015/08/31 11:47:58 http: Accept error: accept tcp [::]:12621: too many open files; retrying in 20ms
2015/08/31 11:47:58 http: Accept error: accept tcp [::]:12621: too many open files; retrying in 40ms
2015/08/31 11:47:58 http: Accept error: accept tcp [::]:12621: too many open files; retrying in 80ms
2015/08/31 11:47:58 http: Accept error: accept tcp [::]:12621: too many open files; retrying in 160ms
2015/08/31 11:47:58 http: Accept error: accept tcp [::]:12621: too many open files; retrying in 320ms
2015/08/31 11:47:58 http: Accept error: accept tcp [::]:12621: too many open files; retrying in 640ms
2015/08/31 11:47:59 http: Accept error: accept tcp [::]:12621: too many open files; retrying in 1s
2015/08/31 11:48:00 http: Accept error: accept tcp [::]:12621: too many open files; retrying in 1s
2015/08/31 11:48:01 http: Accept error: accept tcp [::]:12621: too many open files; retrying in 1s
2015/08/31 11:48:02 http: Accept error: accept tcp [::]:12621: too many open files; retrying in 1s
2015/08/31 11:48:03 http: Accept error: accept tcp [::]:12621: too many open files; retrying in 1s
2015/08/31 11:48:04 http: Accept error: accept tcp [::]:12621: too many open files; retrying in 1s


解决办法:

mac修改进程能打开的最大文件数:
1.
$su 切换到root账户
#launchctl limit maxfiles 99999 99999

#ulimit -n 99999

#exit


2.确认修改生效

$ulimit -n

99999



3.每个窗口的服务都必须在重设ulimit -n之后,重启才生效!


4.举例

cd $GOPATH/src/car_server/bentchmark 

go run main.go 2>2.log &

tail -f 2.log

grep "connect ok" 2.log | wc -l

适当的最大连接取决于多个因素,包括你的硬件资源、据库负载以及预期的并发连接。 一般来说,可以使用以下公式来估计最大连接最大连接 = (可用内存 - 其他进程使用的内存) / 单个连接所需的内存。 在 macOS 上,你可以通过以下步骤来估算单个连接所需的内存: 1. 打开终端,使用管理员权限登录到 MySQL 服务器。 2. 运行以下命令来查看当前 MySQL 的配置信息: ``` mysql> SHOW VARIABLES LIKE 'max_connections'; mysql> SHOW VARIABLES LIKE 'thread_stack'; mysql> SHOW VARIABLES LIKE 'thread_cache_size'; ``` 这些变量将告诉你当前的最大连接、线程栈大小以及线程缓存大小。 3. 根据线程栈大小和其他相关因素,估算出单个连接所需的内存。 通常情况下,线程栈大小为 256KB,但也可以通过修改 `thread_stack` 变量来进行调整。如果你的应用程序需要较大的线程栈,那么单个连接所需的内存也会相应增加。 4. 根据硬件资源和负载情况,确定一个合适的最大连接。你可以参考以下几点: - 确保你的服务器有足够的内存来支持所需的最大连接。 - 考虑据库负载的性质和预期的并发连接。如果你的应用程序需要处理大量的并发连接,可能需要增加最大连接。 - 监控系统资源使用情况,确保最大连接不会导致服务器过载或性能下降。 总的来说,最大连接需要根据具体情况进行调整和优化。建议在进行更改之前先备份配置文件,并进行适当的测试和监控,以确保服务器的稳定性和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值