es恢复时报错: RecoverFilesRecoveryException[[index][3] Failed to transfer [215] files with total size of [9.4gb]]; nested: OutOfMemoryError[unable to create new native thread]; ]]
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
针对您遇到的错误信息:RecoverFilesRecoveryException[[index][3] Failed to transfer [215] files with total size of [9.4gb]]; nested: OutOfMemoryError[unable to create new native thread]; ]]
,该问题表明Elasticsearch在尝试恢复索引文件时失败,具体原因是无法创建新的原生线程,这通常与系统资源限制有关,特别是与操作系统允许的最大线程数限制相关。
检查并调整系统最大线程数限制:
Linux系统中,可以通过修改/etc/security/limits.conf
来增加允许的最大线程数。例如,为elasticsearch用户增加硬限制和软限制:
elasticsearch soft nproc <新值>
elasticsearch hard nproc <新值>
<新值>
应设置为一个合理的上限,根据您的系统资源进行调整,但需谨慎以避免资源耗尽。
重启系统或登出重新登录后,更改才会生效。
优化Elasticsearch配置:
indices.recovery.max_bytes_per_sec
设置来控制恢复速度,减小瞬间线程需求。这可以在YML配置文件中设置。监控资源使用情况:
逐步恢复:
检查JVM堆大小:
请按照上述步骤检查和调整,如果问题仍然存在,考虑进一步查看Elasticsearch日志中的详细错误信息,并根据需要联系阿里云技术支持获取更专业的帮助。