【银河麒麟高级服务器操作系统实例】虚拟化平台系统服务中断现象分析及处理建议

本文主要是介绍【银河麒麟高级服务器操作系统实例】虚拟化平台系统服务中断现象分析及处理建议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

服务器环境以及配置

【机型】虚机

处理器:

Kunpeng-920

内存:

40G

【内核版本】

4.19.90-23.8.v2101.ky10.aarch64

【OS镜像版本】

银河麒麟操作系统 Kylin-Server-10-SP1-Release-Build20-20210518-arm64

【第三方软件】

智能运维系统、mysql数据集群

现象描述

环境描述:Cas虚拟化平台,三台运行智能运维系统和mysql数据库集群的,银河麒麟虚拟机跑在一台物理机上。

故障现象:反馈智能运维系统登录页面提示500。初步排查,发现虚机B系统日志显示在系统出现软中断,并持续15分钟时间。虚机C系统日志也有软中断报错,虚机A系统日志无21号日志,因此无法判断是否有软中断报错,影响智能运维系统服务中断。

现象分析

分析B虚机系统messages日志,可以看到,xxx开始输出“watchdog: BUG: soft lockup - CPU#29 stuck”软中断相关堆栈日志信息,持续到xxx停止输出,日志信息输出时间在15分钟左右。查看Call trace相关堆栈信息,主要集中在,调用smp_call_function_many+0x348/0x3a0这个函数过程中产生,如图1:

图1

分析C虚机系统messages日志,也有相关软中断堆栈信息输出,日志信息输出时间在5分钟左右。查看Call trace相关堆栈信息,同样集中在,调用smp_call_function_many+0x348/0x3a0这个函数过程中产生,如图2:

图2

进一步分析,smp_call_function_many这个call trace堆栈函数的功能和产生的原因。可知,它的功能是在多个CPU上执行一个函数,smp_call_function_many函数发生soft lockup的原因是CPU在一段时间内没有响应中断,可能是由于CPU卡住或者CPU负载过高导致的。

分别分析查看,故障时间段,虚拟机B和C,系统sar性能日志,可知,内存使用率不高,性能瓶颈,不在内存使用,如图3和图4:

图3 虚拟机B内存使用率

图4 虚拟机C内存使用率

分析CPU使用情况和系统负载,可知,故障时间段内,CPU使用率比较高,%system和%iowait占用高,说明CPU处理内核态执行进程时间较长,CPU用于等待I/O操作时间较长,硬盘存在IO性能瓶颈。系统负载也高。如图5-图8:

图5 虚拟机B CPU使用率

图6 虚拟机C CPU使用率

图7 虚拟机B 系统负载

图8 虚拟机C 系统负载

分析系统磁盘IO使用情况,可知,故障时间段内,dev8-0系统磁盘、dev8-16和dev8-32应用磁盘的await,每次IO请求消耗时间大,有异常。%util ,I/O请求占用的CPU百分高,IO处理慢。说明磁盘IO存在比较严重性能问题,会影响系统正常IO读写,如图9和图10:

图 9 虚拟机B 磁盘IO

图10 虚拟机C 磁盘IO

分析结果

综上,系统日志和系统性能分析情况,可见,系统产生软中断,是因为故障时间段内,系统负载高,导致CPU没有正常响应中断请求。系统软中断,不是导致智能运维系统中断的原因。从sar性能日志,分析的情况,可知,CPU使用率较高,系统负载高,iowait较高,%util和await较高,这些性能相关指标,分析下来基本都指向磁盘IO性能出现问题。

结合智能运维系统厂商的问题分析情况,出故障时间段虚拟机A/B/C三台机器均出现网络连通性问题。怀疑,故障时间段内,虚机系统的状态,有暂停或卡死的可能性。

后续计划与建议

因麒麟系统是运行在Cas虚拟化平台上的虚机,建议虚拟化平台侧,排查虚拟化平台相关日志,分析运行虚机的宿主机日志。进一步分析,故障原因。

这篇关于【银河麒麟高级服务器操作系统实例】虚拟化平台系统服务中断现象分析及处理建议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Spring Boot 整合 SSE的高级实践(Server-Sent Events)

《SpringBoot整合SSE的高级实践(Server-SentEvents)》SSE(Server-SentEvents)是一种基于HTTP协议的单向通信机制,允许服务器向浏览器持续发送实... 目录1、简述2、Spring Boot 中的SSE实现2.1 添加依赖2.2 实现后端接口2.3 配置超时时

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

mysql中的group by高级用法

《mysql中的groupby高级用法》MySQL中的GROUPBY是数据聚合分析的核心功能,主要用于将结果集按指定列分组,并结合聚合函数进行统计计算,下面给大家介绍mysql中的groupby用法... 目录一、基本语法与核心功能二、基础用法示例1. 单列分组统计2. 多列组合分组3. 与WHERE结合使

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将