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博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值