TDengine 最大打开文件数nofile不生效

在部署TDengine后,如果数据量比较大,很容易遇到达到最大打开文件数(Max open files)的问题。
可是调整 /etc/security/limits.conf 中的nofile,发现并不能解决问题。

造成以上问题的原因有几个:
1、RHEL7/CentOS7 以后的系统limits.conf文件只影响通过pam登录的用户。systemd启动的进程需要在启动文件中(taosd.service)进行设置。

2、TDengine在部署时,默认在taosd.service 配置了LimitNOFILE=infinity,看似是没有限制,其实根本不能生效。因为systemd 234版本以下不支持infinity参数,而CentOS 7 的systemd 版本是219。

3、当LimitNOFILE=infinity 不生效时,系统会采用nr_open 的值作为默认值。fs.nr_open 在/etc/sysctl.conf 中设置。

解决方案如下:
1、在/etc/sysctl.conf 中设置fs.nr_open ,sysctl -p 使其生效。
2、重启TDengine,

systemctl restart taosd

此时可以查看到TDengine的资源限制已经被修改了。

cat /proc/`pidof taosd`/limits

你可能感兴趣的:(Linux,TDengine,tdengine,big,data,时序数据库,大数据)