旅游设计专业网站智慧餐厅管理系统
2026/6/11 3:14:22 网站建设 项目流程
旅游设计专业网站,智慧餐厅管理系统,海南舰最新动态迈出关键一步,佛山网红书店目录一、问题原因分析二、解决方案#xff08;按优先级排序#xff09;1. 临时调整集群分片上限#xff08;快速缓解#xff09;2. 检查并优化现有分片#xff08;长期解决方案#xff09;3. 检查服务器文件描述符限制#xff08;底层排查#xff09;三、验证解决方案总…目录一、问题原因分析二、解决方案按优先级排序1. 临时调整集群分片上限快速缓解2. 检查并优化现有分片长期解决方案3. 检查服务器文件描述符限制底层排查三、验证解决方案总结最近发现我们的日志系统没有新的数据排查日志发现报错你遇到的这个提示cluster currently has maximum normal shards open是 Elasticsearch 集群的一个核心告警意思是你的 ES 集群已经达到了普通分片normal shards的最大打开数量限制无法再创建新的分片。一、问题原因分析这个限制主要来自两个层面集群级别的分片总数限制ES 有一个动态设置cluster.max_shards_per_node默认值通常是 1000表示每个节点允许的最大分片数主分片副本分片。当集群中所有节点的分片数总和达到这个阈值时就会触发该告警。节点级别的文件描述符限制每个分片对应 ES 中的多个文件索引文件、事务日志等如果服务器的文件描述符file descriptors被耗尽也会表现为“无法打开新分片”本质是无法为新分片创建文件。二、解决方案按优先级排序1. 临时调整集群分片上限快速缓解如果是分片数达到集群阈值导致的问题可以先临时调高分片上限# 适用于 ES 无密码认证的情况curl-XPUThttp://ES节点IP:端口/_cluster/settings-HContent-Type: application/json-d{ persistent: { cluster.max_shards_per_node: 2000 } }# 若 ES 开启了账号密码认证添加 -u 用户名:密码curl-XPUThttp://ES节点IP:端口/_cluster/settings-uelastic:你的密码-HContent-Type: application/json-d{ persistent: { cluster.max_shards_per_node: 2000 } }2. 检查并优化现有分片长期解决方案分片过多本身是 ES 集群的“性能杀手”调整上限只是临时方案核心是优化分片规划删除无用索引清理过期、测试、无用的索引直接减少分片数# 删除单个索引curl-XDELETEhttp://ES节点IP:端口/old_index_name-HContent-Type: application/json# 按通配符删除谨慎curl-XDELETEhttp://ES节点IP:端口/test_*-HContent-Type: application/json# 带认证的删除curl-XDELETEhttp://ES节点IP:端口/old_index_name-uelastic:你的密码-HContent-Type: application/json合并小索引将多个小索引合并为一个大索引比如按时间维度合并减少分片总数# 基础版无认证curl-XPOSThttp://ES节点IP:端口/_reindex-HContent-Type: application/json-d{ source: { index: [small_index_1, small_index_2] }, dest: { index: merged_large_index } }# 带认证的 reindexcurl-XPOSThttp://ES节点IP:端口/_reindex-uelastic:你的密码-HContent-Type: application/json-d{ source: { index: [small_index_1, small_index_2] }, dest: { index: merged_large_index } }调整索引分片策略新建索引时减少主分片数比如从 5 个主分片改为 2 个避免过度分片合理设置副本数非生产环境可设为 0。3. 检查服务器文件描述符限制底层排查如果调整分片上限后仍报错需检查服务器文件描述符# 查看 ES 进程的文件描述符限制cat/proc/$(ps-ef|grepelasticsearch|grep-vgrep|awk{print$2})/limits|grepOpen Files# 临时调高文件描述符需 root 权限ulimit-n65535# 永久修改编辑 /etc/security/limits.confecho* soft nofile 65535/etc/security/limits.confecho* hard nofile 65535/etc/security/limits.conf修改后需重启 Elasticsearch 生效。三、验证解决方案执行以下命令检查集群状态和分片数确认问题解决# 查看集群健康状态curl-XGEThttp://ES节点IP:端口/_cluster/health?pretty-HContent-Type: application/json# 查看所有索引的分片数格式化输出更易读curl-XGEThttp://ES节点IP:端口/_cat/shards?v-HContent-Type: application/json# 查看集群分片上限配置curl-XGEThttp://ES节点IP:端口/_cluster/settings?flat_settingstruepretty-HContent-Type: application/json|grepmax_shards_per_node# 带认证的验证命令以查看集群健康为例curl-XGEThttp://ES节点IP:端口/_cluster/health?pretty-uelastic:你的密码-HContent-Type: application/json总结该告警核心原因是 ES 集群分片数达到上限或服务器文件描述符耗尽临时解决调高cluster.max_shards_per_node配置长期优化清理无用索引、合并小索引、合理规划分片数同时检查服务器文件描述符限制。关键点不要盲目调高分片上限分片过多会导致集群性能下降比如频繁的分片重分配、内存占用过高优化分片规划才是根本。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询