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

相关文章

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

Golang 日志处理和正则处理的操作方法

《Golang日志处理和正则处理的操作方法》:本文主要介绍Golang日志处理和正则处理的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录1、logx日志处理1.1、logx简介1.2、日志初始化与配置1.3、常用方法1.4、配合defer

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

Java空指针异常NullPointerException的原因与解决方案

《Java空指针异常NullPointerException的原因与解决方案》在Java开发中,NullPointerException(空指针异常)是最常见的运行时异常之一,通常发生在程序尝试访问或... 目录一、空指针异常产生的原因1. 变量未初始化2. 对象引用被显式置为null3. 方法返回null

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

Python处理大量Excel文件的十个技巧分享

《Python处理大量Excel文件的十个技巧分享》每天被大量Excel文件折磨的你看过来!这是一份Python程序员整理的实用技巧,不说废话,直接上干货,文章通过代码示例讲解的非常详细,需要的朋友可... 目录一、批量读取多个Excel文件二、选择性读取工作表和列三、自动调整格式和样式四、智能数据清洗五、