📍KeyarchOS:规模化高效运维系统平台
1.1 CentOS停更,国内服务器行业崛起
目前国内崛起的操作系统有如下
- 云峦服务器操作系统 KeyarchOS:由浪潮信息开发,支持x86、ARM、Power 主流架构处理器,面向行业提供服务器操作系统解决方案,满足云计算、大数据、海量存储、人工智能、边缘计算等应用场景需求,为我国数字经济发展提供可靠基石。
- 中标麒麟操作系统(Kylin OS):由信息产业部和中国科学院计算技术研究所联合开发。它支持多种处理器架构,包括x86、ARM和MIPS。
- 新麒麟操作系统(NeoKylin):由中国歌华有线网络有限公司开发,是一款面向企业和政府用户的Linux发行版,提供了针对中国市场特定需求的定制化功能和服务。
1.2 KeyarchOS简介
- KeyarchOS 即云峦服务器操作系统是浪潮信息基于 Linux 内核、龙蜥等开源技术自主研发的款服务器操作系统,支持 x86、ARM 等主流架构处理器,广泛兼容传统 CentOS 生态产品和创新技术产品。
- 可为用户提供整套可视化 CentOS to KeyarchOS 迁移方案。KeyarchOS 具备稳定可靠、高效软硬协同、全天候运维、安全可信等特性,增强了对云计算、人工智能等场景的支持,性能稳定性领先,生态完善,符合金融、政务、能源、交通、通信、教育、医疗等关键行业的应用要求
- 在服务器操作系统领域,从最早的 KUX 开始,浪潮信息已经有 10 余年的研发和技术经验,相关产品在关键行业广泛应用,累计装机超20 万台。支持 x86、ARM、Power 主流架构处理器,面向行业提供服务器操作系统解决方案,满足云计算、大数据、海量存储、人工智能、边缘计算等应用场景需求,为我国数字经济发展提供可靠基石。
📍KeyarchOS:全天候智能化运维
2.1 排障&调优工具
基于专家知识库形成运维工具,提升操作系统底层运维能力,具备高效自动化运维能力:通过监控、诊断、维护等达到全过程自动化运维。
- 系统负载分析:CPU 瓶颈、内存瓶颈、网络瓶颈、IO 瓶颈
- 系统健康诊断:负载异常、网络抖动、内存泄漏、应用异常、IO异常
- 用户业务分析:系统调用数据耗时较长的函数、中断运行统计、调度模
块、内存模块、延时抖动、内存泄露等
提升物理机、虚拟机、容器等场景下关键业务性能,降低硬件资源需求,降低业务运营成本。调优又分为动态调优和静态调优。
- 静态专家知识库调优:
CPU高负载、IO高吞吐量、网络高负载、网络低延时
MySql、Oracle、Nginx、Redis、Pgsql
- 动态敏感参数识别调优
基于AI算法对内核参数、业务软件参数调优
2.2 批量运维管理工具
实现故障精准化分析和设备无状态管理,批量完成固件版本的合规性检查、新版本的下载更新等带来的工作负荷。
通过引入深度学习大模型达到运维的智能化管理
2.3 远程运维服务工具
接入InService智控平台,由浪潮信息专家运维团队远程管理,实现多项智能化服务落地,提供“端、云、管、服”四位一体的远程运维服务体验。
📍运维实践操作
本次实践采用的工具是KSysAK,该工具是由浪潮信息的云峦操作系统研发及运维人员总结开发及运维经验,设计和研发的多个运维工具的集合,对于运维人员来说,非常的高效易用。
3.1 KSysAK功能介绍
KSysAK覆盖系统的日常监控 、 线上问题诊断和系统故障修复等常见运维场景
KSysAK 按功能划分可分为监控和诊断模式:
- 系统监控:针对各种系统资源(CPU、内存、网络、文件 IO、内核管理结构等)提供更精细化的资源监控,帮助业务运维实现细粒度的运维调度,高效运用资源。
- 系统诊断:诊断的典型问题如负载异常、网络抖动、内存泄漏、IO毛刺、性能瓶颈、应用异常等,针对性的提供工具,同时尽量减少工具的专业性,让用户更易使用和解读。
Ksysak提供了多个子工具,着重解决不同场景下的监控数据的采集、统计及数据诊断。
3.2 Linux内核内存泄露检测
Linux内核内存分配有几种不同的机制,其中包括slab、page和vmalloc,本次针对slab,page两种内存分配机制进行检测模拟。
ksysak的memleak工具,提供了对slab, page, vmalloc 三种机制分配的内存进行内存检测的功能并动态跟踪泄漏函数
✅ slab 内存泄露检测
- 第一步: 执行ksysak memleak -t slab -i 60检测启动slab内存泄露检测程序,通过-i 60 指定page内存检测程序60秒,该变量可自行调整。
- 第二步:加载模拟slab 内存泄露的程序test_slab.ko,该程序在模块加载过程中会申请大量slab 内存,但不对其进行释放。
- 检测结果
- 在未释放内存列表中记录了申请但未进行释放slab的进程,进程id, 指针, slab存活时间等
- 在未释放内存汇总中会记录被未释放slab内存被标记的函数申请的次数,函数名, 标记次数,泄露的slab基本信息,疑似泄露object的指针及相似object的数量,以及疑似泄露的函数名及地址。
✅ page 内存泄露检测
- 第一步.首先指定 ksysak memleak -t page -i 60启动检测page内存泄露程序,通过-i 60 指定page内存检测程序60秒。
- 第二步:加载模拟page 内存泄露的程序test_page.ko,该程序中会在模块的加载过程中申请大量的page页,但不对其进行释放,造成page泄露,通过 ksysak memleak能够有效进行检测。
- 检测结果
在运行60秒之后,输出以上结果
- 在未释放内存列表中记录了申请page页的进程,进程id, 指针, page也存在时间, 函数调用的堆栈信息等。
- 在未释放内存汇总中会记录 相同函数申请page页的数量、大小等,以及函数名称等,并按降序进行排列。
3.2 OS异常实践分析
✅ossre_client 的使用
使用ksysak中的工具ossre_client 可扫描日志文件查看系统运行过程中的所有异常信息;
开始诊断:
诊断结果
诊断结果:存在如下异常
1.配置相关异常:
1)调度相关:
该机器softlockup_panic打开,容易造成频繁宕机,建议关闭
2)内存相关:
该机器min_free_kbytes=45056kB设置过小容易频繁directreclaim,建议调整该参数为系统总内存大小的1-3%
3)IO相关:
None
4)网络相关:
/proc/sys/net/ipv4/tcp_fack 推荐设置为1
/proc/sys/net/ipv4/tcp_tw_timeout 推荐设置为3
/proc/sys/net/ipv4/tcp_tw_reuse 推荐设置为1
5)MISC:
None
6)Hotfix相关:
None
2.SLI相关异常:
1)宕机:
None
2)CPU相关:
None
3)内存相关:
主机存在频繁directreclaim达1992次
4)IO相关:
None
5)网络相关:
6)MISC:
None
3.存在如下已知问题,建议联系内核同学修复:
None
4.日志相关异常:
发生pageallocfail 4次
诊断原因:
5.硬件相关异常:
None
3.3 检测系统中延迟抖动
Runlatency
作为系统运维工具KSysAK的一个子工具用于诊断系统中可能影响应用运行延迟抖动的地方并输出延迟因素
通过使用Runlatency监控整个系统或单个进程的中断和调度信息,监控的数据包括:
进程/线程调度延迟,比如运行队列挤压、排队时间过长以及高优先级应用抢占或本身调度策略设置不合理。
- 中断和软中断响应不及时,业务运行过程会依赖于中断和软中断执行过程,包括网络收发包、IO 读写等。因此可以分析关中断时长来判断中断的响应时间。
- 内核态执行过长:包括系统本身存在的瓶颈以及内核里其他资源竞争等情况
✅runlatency 的使用
- 第一步:先执行系统延迟抖动模拟程序
- 执行ksysak runlatency -e 启动延迟抖动监控
- 执行 ksysak runlatency -r ./out , 将监控数据输出到out目录下
- 执行ksysak runlatency -d 关闭监控
最后查看out目录下的输出结果如下:
输出结果中显示了nosch, hard, soft 类型的延迟信息,所属CPU,进程id,延时时间, 命令行,堆栈信息等。
📍KeyarchOS实践总结
4.1 上手感受
通过本次的运维实践操作,让我感受最深的是KeyarchOS运维自动化和智能化做的很好,举个例子,OS异常分析,通过使用ksysak ossre_client -d这一条命令,能够直接显示配置相关异常、SLI相关异常、日志相关异常、硬件相关异常等,节省了使用不同的方法去检测不同类型的异常这个繁琐的步骤,真正为运维人员提升了维护效率。
4.2 KeyarchOS优势
- KeyarchOS能够做到全天候的智能化运维,在发生异常的时候实时通知相关人员处理异常。
- KeyarchOS中内置的智能化工具Ksysak,提供了多个子工具,着重解决不同场景下的监控数据的采集、统计及数据诊断。
引入大模型知识库达到运维的智能化、自动化运维能力:通过监控、诊断、维护等达到全过程自动化运维。
4.3 改进点
KeyarchOS集成了各种智能化、自动化的运维功能,通过上手实践之后,觉得需要完善的方面是增加简单易用且能显示详细检测结果的可视化页面,这能帮助运维人员更好的对系统进行维护。