当前位置: 首页 > news >正文

系统运维工具KSysAK——让运维回归简单

系统运维工具KSysAK——让运维回归简单

1.基本信息

1.1概述

系统异常定位分析工具KSysAK是云峦操作系统研发及运维人员总结开发及运维经验,设计和研发的多个运维工具的集合,可以覆盖系统的日常监控、线上问题诊断和系统故障修复等常见运维场景

工具的整体设计上,力图让运维工作回归简单,让系统运维人员不需要深入了解内核就能找出问题的所在。


在这里插入图片描述

系统运维工具按功能划分可分为监控和诊断模式:

  • 系统监控:针对各种系统资源(CPU、内存、网络、文件 IO、内核管理结构等)提供更精细化的资源监控,帮助业务运维实现细粒度的运维调度,高效运用资源。

  • 系统诊断:诊断的典型问题如负载异常、网络抖动、内存泄漏、IO毛刺、性能瓶颈、应用异常等,针对性的提供工具,同时尽量减少工具的专业性,让用户更易使用和解读。

而为了实现以上功能,并能够为用户提供简单易用操作界面,系统运维工具KSysAK提供了多个子工具,着重解决不同场景下的监控数据的采集、统计及数据诊断。

1.2环境详解

IP地址:100.2.93.133

架构:x86_64

类型:虚拟机

操作系统版本:KOS5.8-sp1

内核版本:4.19.91-27.4.7.kos5.x86_64

KSysAK版本:1.3.0

用户名:root

密码:123456a?

1.3工具

分类工具名称备注
内存泄露memleaktest_page_leak.ko模拟page泄露的工具
test_slab_leak.ko模拟slab泄露的工具
test_vmalloc_leak.ko模拟vmalloc 泄露的工具
延迟抖动runlatencytestrunlatency模拟进程运行延迟情况

Linux内核内存泄漏检测

内核内存泄漏是指在Linux系统中,由于代码中的错误或缺陷,分配给内核的内存未能被正确释放而导致的问题。这可能会导致系统性能下降,最终耗尽系统的可用内存,甚至导致系统崩溃。下面我将介绍一些在Linux系统中检测和解决内核内存泄漏的方法:

Linux内核内存分配有几种不同的机制,其中包括slab、page和vmalloc。

ksysak memleak内存泄露检测工具,包含以下几个步骤:

  1. 集成到项目中:将ksysak memleak的内存泄漏检测代码集成到需要检测的项目中。这通常涉及将检测代码插入到项目的适当位置,以确保能够准确追踪内存分配和释放情况。

  2. 编译和运行项目:使用适当的编译选项编译项目,并确保项目成功编译。然后运行项目,让其正常执行一系列操作,包括内存的申请和释放。

  3. 收集内存泄漏数据:在项目运行期间,ksysak memleak将记录内存分配和释放的详细信息。这些数据包括每次内存分配的调用堆栈、分配大小、分配位置等。收集这些数据用于后续的内存泄漏分析。

  4. 分析内存泄漏数据:使用ksysak memleak提供的分析工具,对收集到的内存泄漏数据进行分析。这可以帮助识别潜在的内存泄漏源头、内存泄漏的大小以及泄漏发生的位置。通过这些信息,开发人员可以准确地定位问题并采取相应的修复措施。

  5. 修复内存泄漏:一旦通过分析工具确定了内存泄漏的位置和原因,开发人员就可以修复这些问题。修复可能涉及修改代码以确保正确释放内存、修复内存管理逻辑的错误等。在修复后,可以重新运行项目并使用ksysak memleak进行验证,确保内存泄漏问题已得到解决。

需要注意的是,ksysak memleak是一种基于宏调用的内存泄漏检测工具,它可能会对项目性能产生一定的影响。因此,在使用ksysak memleak进行内存泄漏检测时,建议仅在开发和调试阶段使用,并在完成内存泄漏修复后将其从项目中移除,以确保项目的性能和稳定性不受影响。

2.1 page内存泄露检测

执行ksysak memleak -t page -i 80启动检测page内存泄露程序,运行80s(若来不及执行检测程序则可以延长时间)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.2 slab内存泄露检测

执行 slabtop 命令以查看当前系统的 Slab 使用情况

执行 cat /proc/slabinfo 命令,获取更详细的 Slab 缓存信息。

使用perf工具跟踪内核中的 Slab 分配和释放操作

执行ksysak memleak -t slab -i 80检测启动slab内存泄露检测程序,运行80s(若来不及执行检测程序则可以延长时间)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

OS 异常分析

OS异常分析是操作系统中的一种重要技术,用于处理在程序运行过程中发生的异常情况。当程序执行时遇到某些无法处理的错误或特殊情况时,操作系统会通过异常处理机制来响应,以保护系统的稳定性和安全性。

3.1系统巡查

执行#ksysak ossre_client -d 可扫描日志文件查看系统运行过程中的所有异常信息。

在这里插入图片描述

等等异常信息

检测系统中延迟抖动

服务器操作系统运行过程中,对应用运行的干扰源可能会很多,但干扰不一定会对业务造成影响,所以至少需要包含这些干扰源的频率和运行时间,来评估是否是关键因素。

至少需要包括以下干扰源的统计:

  • 设备硬件中断 如果在业务运行过程中,某一类中断频率过高或者集中到某个 cpu,或者单次运行过长,那么都可能会影响到业务的性能,可以对中断进行打散绑定等操作观察效果。

  • 系统定时中断 系统定时器过多,也可能会对业务的唤醒造成延迟,通常可以分析业务进程是否有大量的使用高精度定时器。

  • 软中断 可能是网络流量是否有突发增加等。

Runlatency 作为系统运维工具KSysAK的一个子工具,用于诊断系统中可能影响应用运行延迟抖动的地方并输出延迟因素。其内核中监控影响进程调度的延时因素(关中断、长时间不调度、运行队列长)。可监控整个系统或单个进程的中断和调度信息,监控的数据包括:

进程/线程调度延迟,比如运行队列挤压、排队时间过长以及高优先级应用抢占或本身调度策略设置不合理。

中断和软中断响应不及时,业务运行过程会依赖于中断和软中断执行过程,包括网络收发包、IO 读写等。因此可以分析关中断时长来判断中断的响应时间。

内核态执行过长:包括系统本身存在的瓶颈以及内核里其他资源竞争等情况。

4.1检测系统中延迟抖动

执行系统延迟抖动模拟程序 testrunlatency.python (在/root)

在这里插入图片描述

执行ksysak runlatency -e 启动延迟抖动监控

在这里插入图片描述

执行 ksysak runlatency -r ./out , 将监控数据输出到out目录下

在这里插入图片描述

执行ksysak runlatency -d 关闭监控

在这里插入图片描述

查看out目录下的输出结果如下:

在这里插入图片描述

nosch, hard, soft 类型的延迟信息,所属CPU,进程id,延时时间, 命令行,堆栈信息等。

使用curl用于测试Web应用的响应和时间,较小的延迟时间通常表示系统或服务能够更快地响应用户的请求

在这里插入图片描述

产品总结

KSysAK是一款多个运维工具集合的“结晶”,它可以大大提高运维人员的工作效率,其主要功能是系统的日常监控、线上问题的诊断和系统故障修复,对于系统的检测非常的详细,该产品的主要特点是覆盖面广,使用不受限,这大大体现了产品的实用和广泛性,让运维工作回归简单,让系统运维人员不需要深入了解内核就能找出问题的所在,非常方便!

总体来说,不管是对用户个人还是在岗的工作人员,这款工具一当之无愧的,但是在某些方面还是可以再优化的,例如:

  • 可以增强定制化:工具应该允许用户更细粒度地定制模拟泄漏的场景。比如,用户应该能够指定泄漏的大小、速度、以及泄漏发生的位置。

  • 详细的报告:工具应该生成详细且易于理解的报告,以帮助用户识别和解决内存泄漏问题。报告应该包括泄漏的大小、位置、以及可能的解决方案。

  • 实时检测和警报:工具应该能实时监测内存泄露,并在发现潜在问题时向用户发出警报,这样有助于在问题严重前及时解决问题。

还可以做一个可视化界面,对于很多用户来说,命令行可能不爱看,或者说有点复杂,一个直观的用户界面将有助于用户更方便地使用这些工具。

最后,为了确保这些工具的有效性和准确性,建议定期进行质量测试和验证。这样可以确保它们在不同场景和配置下都能可靠地工作。

相关文章:

系统运维工具KSysAK——让运维回归简单

系统运维工具KSysAK——让运维回归简单 1.基本信息 1.1概述 系统异常定位分析工具KSysAK是云峦操作系统研发及运维人员总结开发及运维经验,设计和研发的多个运维工具的集合,可以覆盖系统的日常监控、线上问题诊断和系统故障修复等常见运维场景。 工具…...

NowCoder | KY11 二叉树遍历

NowCoder | KY11 二叉树遍历 OJ链接 简单来说就是构建这个二叉树定义结构体通过递归方式根据输入的字符串构建二叉树。对于输入字符串中的每个字符&#xff0c;如果是 ‘#’ 表示空节点&#xff0c;否则创建一个新节点&#xff0c;并递归地构建左右子树。 #include <limit…...

android.view.WindowLeaked解决方法

问题 我在使用WindowManager添加一个button&#xff0c; windowManager.addView(button,layoutParams);然后关闭当前的这个Activity的时候遇到了WindowLeak这个问题&#xff0c;也就是所谓的窗体泄露。 原因 主要原因是因为android只允许在UI主线程操作&#xff0c;我在使用W…...

浪潮信息KeyarchOS的飞跃之路

1.背景 在正式向大家介绍KOS之前&#xff0c;我们先关注这样一些问题。 传统操作系统在大规模数据处理、高性能计算和人工智能应用方面面临着一些瓶颈问题&#xff0c;包括存储和访问效率、数据传输和通信效率、并行计算性能等等问题。为了能够更好的改进这些问题&#xff0c…...

C++基础 -41- 迭代器

每个stl 模板接口都有一个专用的迭代器 迭代器就是 stl 库中的 一个特殊指针&#xff0c;功能与指针类似(类似但不是) 迭代器定义格式 迭代器的使用,使用迭代器遍历向量容器的参数 代码运行结果 无论使用普通方式还是迭代器方式去都可以遍历vector容器...

zookeeper心跳检测 (实操课程)

本系列是zookeeper相关的实操课程&#xff0c;课程测试环环相扣&#xff0c;请按照顺序阅读来学习和测试zookeeper。 阅读本文之前&#xff0c;请先阅读----​​​​​​zookeeper 单机伪集群搭建简单记录&#xff08;实操课程系列&#xff09;zookeeper 客户端常用命令简单记录…...

社区新零售:重塑零售业的全新模式

社区新零售&#xff1a;重塑零售业的全新模式 近年来&#xff0c;新零售业成为了研究的焦点&#xff0c;它是一种以互联网为基础的零售形式。新零售通过运用先进技术手段&#xff0c;如大数据和人工智能&#xff0c;对商品的生产、流通和销售过程进行升级改造&#xff0c;重新构…...

北京华联BHGMall“宠粉模式”不断迭代,强体验注互动成行业UP主

在今年双11热度遇冷后&#xff0c;双十二被官宣取消&#xff0c;而这背后本质已经间接印证&#xff1a;传统“电商大促”的模式&#xff0c;已经难以为继。反观线下消费市场&#xff0c;则是以持续恢复和增长成为经济恢复的亮点&#xff0c;从线下客流量的快速回升&#xff0c;…...

前端时间的失败总结复盘

分享失败经验&#xff0c;前段时间的总结复盘&#xff1a; 与伙伴合作面对异常决策要及时提出质疑&#xff0c;怼&#xff0c;别太客气&#xff0c;客气起来&#xff0c;小心翼翼在意他人情绪那么这个项目就会让人难受&#xff0c;不要因为因为伙伴身上有标签/光环/权威就觉得…...

Ribbon 负载均衡

1、负载均衡整体流程 2、负载均衡流程逐级跟踪运行 (1) LoadBlanced 注解可以使LoadBalancerInterceptor拦截到&#xff1b; (2)LoadBalancerInterceptor 实现了ClientHttpRequestInterceptor接口&#xff1b; (3)ClientHttpRequestInterceptor接口释义如下&#xff1b; (4)int…...

微服务实战系列之Cache(技巧篇)

前言 凡工具必带使用说明书&#xff0c;如不合理的使用&#xff0c;可能得到“意外收获”。这就好比每个人擅长的领域有所差异&#xff0c;如果放错了位置或用错了人&#xff0c;也一定会让 Leader 们陷入两难之地&#xff1a;“上无法肩负领导之重托&#xff0c;下难免失去伙伴…...

6.17验证二叉树(LC98-M)

算法&#xff1a; 中序遍历下&#xff0c;输出的二叉搜索树节点的数值是有序序列。 有了这个特性&#xff0c;验证二叉搜索树&#xff0c;就相当于变成了判断一个序列是不是递增的了。 具体地&#xff1a;中序遍历时&#xff0c;判断当前节点是否大于中序遍历的前一个节点&a…...

【Linux】编译器-gcc/g++与调试器-gdb的使用

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.gcc/g语法 2.gcc的使用及…...

Google Guava 散列工具使用详解

文章目录 散列哈希函数哈希码布隆过滤器 散列 Guava 提供了一组散列&#xff08;哈希&#xff09;相关的工具类和方法&#xff0c;包括哈希函数接口、哈希算法实现、哈希码&#xff08;HashCode&#xff09;类、布隆过滤器&#xff08;BloomFilter&#xff09;等等。 Guava 提…...

AIGC-文生视频

stable diffusion的前传&#xff1a; 轻松理解 VQ-VAE&#xff1a;首个提出 codebook 机制的生成模型 - 知乎近两年&#xff0c;有许多图像生成类任务的前沿工作都使用了一种叫做"codebook"的机制。追溯起来&#xff0c;codebook机制最早是在VQ-VAE论文中提出的。相比…...

java中Collectors.groupingBy返回实例?

在Java中&#xff0c;Collectors.groupingBy()是一个用于对流元素进行分组的收集器。它可以根据指定的分类函数对流元素进行分组&#xff0c;并返回一个Map对象&#xff0c;其中键是分组的标准&#xff0c;值是属于相应组的元素列表。 下面是一个使用Collectors.groupingBy()方…...

uniapp打包的h5项目多了接口调用https://api.next.bspapp.com/client

产生跨域问题。 这个实际上是因为该项目在manifest.json文件中勾选了‘uni统计配置’导致的&#xff0c;取消勾选就可以了。 如果是小程序项目&#xff0c;在小程序开发者工具中添加可信任域名就可以了。 可以看看下面这个链接内容 uni-app H5跨域问题解决方案&#xff08;…...

探索跨境建站:如何借助软骨鱼SaaS平台快速搭建独立站

随着全球电子商务的蓬勃发展&#xff0c;作为一名资深的跨境电商从业者&#xff0c;我深知跨境建站服务需要与时俱进&#xff0c;不断迈向更高效、更智能的2.0时代。今天&#xff0c;我想和大家分享一个让我眼前一亮的解决方案——软骨鱼SaaS平台&#xff0c;这个平台彻底颠覆了…...

C语言-字符串输入输出

字符串赋值 char *t “title”;char *s;s t;并没有产生新的字符串&#xff0c;只是让指针s指向了t所指的字符串&#xff0c; 对s的任何操作就是对t做的 字符串输入输出 char string[8];scanf(“%s”, string);printf(“%s”, string);scanf读入一个单词&#xff08;到空格…...

OpenHarmony 设备启动Logo和启动视频替换指南

前言 OpenHarmony源码版本&#xff1a;4.0release 开发板&#xff1a;DAYU / rk3568 一、Logo替换 替换其中的logo.bmp 和 logo_kernel.bmp文件 注意事项&#xff1a; 1、图片的分辨率需要和设备匹配 2、如果是非首次编译&#xff08;存在缓存&#xff09;需要将out目录删…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...