SuperMap iManager for K8S服务异常处理(2)

2024-02-25 08:32

本文主要是介绍SuperMap iManager for K8S服务异常处理(2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在处理客户使用SuperMap iManager for K8S的过程中,出现了个比较奇怪的问题

1)问题现象

iManager运行一段时间后,服务无法访问了,远程查看服务器,发现ssh竟然连不上了,直接找到物理机查看,发现报了一些错误

cpu死锁soft lockup,或者是

2)原因排查

出现这些问题的客户都存在一个共同的特点,就是发布了大量的瓦片数据,并且瓦片数据是放在NFS共享目录中的,根据第二个截图中的报错可以看出是runc无法申请到内存,而客户的内存其实都是很大的还有很多闲置的内存可以使用,可以联想到大概是由于内存回收不及时,存在大量的碎片化。当某进程执行时,在 XFS(XFS Manager的内存管理) 的申请内存中有连续的大块内存申请请求,就会导致内存一直分配不到,会一直阻塞在 kmem_alloc 循环中, 反复申请内存,由于内存碎片没有被组合,因此就一直申请不到执行命令也会卡住,这也就验证了执行某些ssh 都会失败的原因。

而第一个截图中的soft lockup的错误,在网上查阅了相关资料后发现可能存在诸多的原因,不是很好排查,而且大概率是跟大量的碎片化瓦片发布有关。根据网上提供的解决方式,可以修改watchdog的超时时间来进行避免,于是我们可以将这两个报错按照一个办法来同时处理

3)解决办法

修改min_free_kbytes ,确定系统开始回收内存的阈值,控制系统的空闲内存。值越高,内核越早开始回收内存,空闲内存越高

vi /etc/sysctl.conf
#修改为4G
vm.min_free_kbytes=4194304
vm.vfs_cache_pressure=200
vm.swappiness=40 

修改watchdog的超时时间

vi /etc/sysctl.conf
kernel.watchdog_thresh=30

 每个节点都修改后重启机器

运行了很长一段时间后再也没出现类似的问题

参考文章:

min_free_kbytes_hanyingzhong的专栏-CSDN博客

BUG: soft lockup - CPU#0 stuck for s!_学海无涯的博客-CSDN博客

这篇关于SuperMap iManager for K8S服务异常处理(2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/744935

相关文章

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

k8s中实现mysql主备过程详解

《k8s中实现mysql主备过程详解》文章讲解了在K8s中使用StatefulSet部署MySQL主备架构,包含NFS安装、storageClass配置、MySQL部署及同步检查步骤,确保主备数据一致... 目录一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.

Java服务实现开启Debug远程调试

《Java服务实现开启Debug远程调试》文章介绍如何通过JVM参数开启Java服务远程调试,便于在线上排查问题,在IDEA中配置客户端连接,实现无需频繁部署的调试,提升效率... 目录一、背景二、相关图示说明三、具体操作步骤1、服务端配置2、客户端配置总结一、背景日常项目中,通常我们的代码都是部署到远程

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

Python异常处理之避免try-except滥用的3个核心原则

《Python异常处理之避免try-except滥用的3个核心原则》在Python开发中,异常处理是保证程序健壮性的关键机制,本文结合真实案例与Python核心机制,提炼出避免异常滥用的三大原则,有需... 目录一、精准打击:只捕获可预见的异常类型1.1 通用异常捕获的陷阱1.2 精准捕获的实践方案1.3

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda