[FAQ] the maximum number of open file descriptors is too small The default maximum number of open file descriptors is too low

[问题澄清]

TiDB集群安装过程中,遇到报错:

the maximum number of open file descriptors is too small, got 65536, expect greater or equal to 82920

或者

fatal: [xxx.xxx.200.205]: FAILED! => {“changed”: false, “msg”: “The default maximum number of open file descriptors is too low 4096, should be 1000000”}

[原因分析]

操作系统max open file limitation设置过小,需要增大配置.

[解决方案]

1.检查参数值:

ulimit -Sn

ulimit -Hn

修改参数值:

ulimit -HSn 1000000

2.如果测试环境使用docker配置,可以尝将docker配置文件

/usr/lib/systemd/system/docker.service的参数

LimitNOFILE=infinity

LimitNPROC=infinity

改为:

LimitNOFILE=1000000

LimitNPROC=1000000

重启docker,部署tidb

3.如果当前session设置参数不生效,改完后,新建session尝试

[参考案例]

Docker-compose 报错 the maximum number of open file descriptors is too small 是什么 原因?

使用 tidb-operator 部署,pd 部署成功,tikv 一直处于 CrashLoopBackOff 状态

ansible集群新增节点报错

[引申学习点]

CENTOS中6和7设置参数的位置不同.可以参考以下文章

CENTOS/RHEL 7 系统中设置SYSTEMD SERVICE的ULIMIT资源限制

http://smilejay.com/2016/06/centos-7-systemd-conf-limits/