最近在使用MAC对接口进行压测,发现多线程高并发的时候,会有一些小坑,这里整理下,方便后续查看。
1、容易出现unable to create thread 6: Too many open files。
原因是:文件句柄数不够,需要调高ulimit 里面的open file 的值。
输入:ulimit -a 查看当前最大的文件打开数量(默认为256)。
2、接下来使用ulimit -n 命令来调高这个值(可能会出现权限错误)-bash: ulimit: open files: cannot modify limit: Operation not permitted:
原因是权限不够,使用sudo来执行命令。 ulimit -n 1024
3、如果调得过高的话,会出现报错: ulimit: open files: cannot modify limit: Invalid argument。
解决方式:
输入:sysctl -w kern.maxfiles=1048600
输入:sysctl -w kern.maxfilesperproc=1048576
输入:ulimit -n 1048576
随后使用 ulimit -n 命令查看是否成功设置最大文件打开数。