You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AKS部署的SolrCloud副本反复恢复失败问题求助

排查与解决方案

1. 节点资源过载与驱逐排查

  • 每个AKS节点总内存32G,你的Solr Pod内存请求设为20G,节点本身还要运行Kubelet、容器运行时及系统进程(至少占用4-6G),剩余可用内存空间极少。当Pod内存使用逼近请求阈值,或节点内存耗尽时,Kubernetes会触发OOMKiller或节点压力驱逐,直接导致Pod重启。
    • 执行kubectl describe pod <solr-pod-name>查看Pod事件,确认是否存在OOMKilled或Evicted记录
    • 用kubectl top node查看节点内存使用率,检查是否有节点内存负载接近100%
    • 下调Pod内存请求至18G以内,给节点预留足够缓冲空间

2. JVM内存配置优化

  • 当前JVM堆设为xms12g、xmx16g,Pod内存请求20G,留给堆外内存(Direct Memory、MetaSpace、JNI内存等)的空间仅4G。若堆外内存占用超出该值,会导致Pod内存超限,触发Kubernetes的内存限制机制。
    • 在Solr启动命令中添加-XX:+PrintFlagsFinal -XX:+PrintGCDetails参数,收集GC日志和堆外内存使用数据
    • 尝试将JVM堆上限降至14G,给堆外内存多预留2G空间,观察重启现象是否缓解

3. 分片副本负载均衡调整

  • 7分片3副本的集合共21个分片实例,仅5个Solr节点承载,单节点会分配4-5个副本,过多分片会导致节点IO、CPU负载过高,间接引发Pod重启。
    • 登录Solr Admin UI的Cloud页面,检查每个节点的分片分布,确认是否有节点负载过载
    • 创建集合时添加副本数限制规则,避免单节点承载过多副本:
      solr create_collection -c mycollection -shards 7 -replicationFactor 3 -rule "replica:<=3"
      

4. 存储与StatefulSet配置检查

  • 若Solr使用Azure Disk等持久化存储,IO性能瓶颈或挂载异常可能导致Pod重启。
    • 在AKS控制台查看持久卷的IOPS、吞吐量指标,确认是否达到性能上限
    • 执行kubectl describe pvc <solr-pvc-name>检查存储挂载事件,排查磁盘满、挂载失败等问题
    • 将StatefulSet的terminationGracePeriodSeconds设置为300秒以上,给Solr足够时间优雅关闭,避免强制杀死导致分片损坏

5. 深层日志收集

  • 仅查看Solr应用日志可能遗漏关键信息,需检查Kubernetes节点层面的日志:
    • 查看节点Kubelet日志:kubectl logs -n kube-system kubelet-<node-name>,搜索对应Pod的重启触发原因
    • 查看容器重启前的错误输出:kubectl logs <solr-pod-name> -c <solr-container-name> --previous

内容的提问来源于stack exchange,提问作者Nguyen Tu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 04:25:22