部署TIDB EPOLLEXCLUSIVE 报错问题

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:V3.0.5
  • 【问题描述】:系统centos7.7 内核版本4.4.202

用ansible的方式安装集群,初始化系统环境,修改内核参数ansible-playbook bootstrap.yml

Ansible FAILED! => playbook: bootstrap.yml; TASK: check_system_static : Preflight check - Check if the operating system supports EPOLLEXCLUSIVE; message: {“changed”: true, “cmd”: “/home/tidb/deploy/epollexclusive”, “delta”: “0:00:00.007020”, “end”: “2019-10-16 10:29:15.858494”, “msg”: “non-zero return code”, “rc”: 1, “start”: “2019-10-16 10:29:15.851474”, “stderr”: “”, “stderr_lines”: [], “stdout”: “epoll_ctl with EPOLLEXCLUSIVE | EPOLLONESHOT succeeded. This is evidence of no EPOLLEXCLUSIVE support. Not using epollex polling engine.False: epollexclusive is not available”, “stdout_lines”: [“epoll_ctl with EPOLLEXCLUSIVE | EPOLLONESHOT succeeded. This is evidence of no EPOLLEXCLUSIVE support. Not using epollex polling engine.False: epollexclusive is not available”]}

这个EPOLLEXCLUSIVE主要起什么作用,除了升级内核版本,还有其他解决办法吗?

我的测试CentOS Linux release 7.6.1810 (Core) tidb版本:5.7.25-TiDB-v3.0.4 内核版本:3.10.0-957 并没有遇到这个问题,请问是在什么情况下会触发需要支持 [EPOLLEXCLUSIVE] 功能?

支持 EPOLLEXCLUSIVE 是为了解决连接的“惊群”问题,可以参考一下这个链接:

TiDB 中操作系统有一些检测: