当前位置: 首页 > Linux

系统运维利器,百万服务器实战运维总结!了解SysAK最新版本|龙蜥科技

时间:2023-04-06 02:24:07 Linux

在刚刚结束的龙蜥峰会eBPF&LinuxStability专场,龙蜥系统运维SIGMaintainer张毅做了主题演讲《SysAK 系统运维工具集》,以下为演讲实录。大家好,在去年的云栖大会上,我们在龙蜥社区开源了系统运维工具集SysAK,并提供了多种诊断功能。作为系统运维SIG(SpecialInterestGroup)的主要项目之一。在过去的一年里,SysAK也在技术架构和应用场景上进行了更多的升级,以适应更多的场景。今天分享最新版本的核心技术架构和使用场景。由于时间关系,我将重点介绍监控模式的相关组件,并利用DragonLizardOS和SysAK的增强功能来监控疑难问题和系统健康状况。一、SysAK框架介绍SysAK全称SystemAnalyzeKit,是DragonLizard系统运维的SIG。通过对以往数百万台服务器的运维经验进行提炼和总结,我们提供完善的系统运维工具集,可覆盖日常系统监控、在线问题诊断、系统故障修复等常见运维场景。主要包括三个方面:系统监控:为各种系统资源(CPU、内存、网络、文件IO、内核管理结构等)提供更精细的资源监控,帮助业务运维实现细粒度的运维调度,高效利用资源。系统诊断:诊断负载异常、网络抖动、内存泄漏、IO毛刺、性能瓶颈、应用异常等典型问题,提供针对性的工具,最大限度降低工具的专业性,让用户更容易使用和解读.系统干预:主要提供故障注入、系统恢复、故障隔离等系统干预能力。SysAK框架包括两种模式,监控模式和诊断模式。系统资源瓶颈指标包括CPU瓶颈、内存瓶颈、网络瓶颈和IO瓶颈。通过对瓶颈的监控,可以找出应用运行过程中对资源的依赖情况,进而利用依赖与其他数据进行有效的配合,对应用进行合理的调度和监控。资源分配。除了四大硬件资源,系统软件本身也存在瓶颈。例如,Linux内核系统在访问各种文件、句柄、缓存和共享资源的过程中可能存在并发瓶颈。SysAK也做了大量的工作。干扰是应用程序运行过程中比较常见的因素,会导致抖动或运行中断。SysAK顺应当前云原生趋势,实现了容器资源的可视化。诊断模式是指及时发现问题,根据问题根源进行诊断,按需启动。根据用户的运维场景,目前支持以下三类:系统负载分析:系统负载时系统运维过程中的典型问题,可以对此进行根本原因分析,避免影响进程栈.系统健康度一键诊断:如分析系统各资源维度,检查配置是否合理等IO问题自动诊断:如IO满时,分析是否由由应用程序的瓶颈或底层业务存储的瓶颈。除了用户场景,我们还为高级技术人员提供更深层次的数据诊断,比如系统调用数据较长的函数、中断运行统计、调度模块、内存模块、延迟抖动、内存泄漏等,会根据每个各子系统的特性可用于特殊功能诊断。SysAK通过松散耦合、依赖管理、多架构、多版本构建支持,确保工具开发者只需一次开发,无需额外工作即可集成主流架构和操作系统版本。2.SysAK监控场景应用SysAK的监控服务mservice主要提供资源监控、异常告警、根因分析三大能力。其中,异常告警功能会设置一个特殊的阈值,提供告警,并进行自动分析。SysAK可以使用增强指标来监控容器资源的使用情况,主要依赖于DragonLizardOS内核的增强特性和SysAK自身的扩展。计算资源方面:包括容器负载、运行任务数和阻塞任务数。内存资源方面:内存使用过程中经常遇到瓶颈,加强监控主要针对延迟。内存回收延迟包括全局内存回收和容器内存回收,两者都会影响容器的服务运行状态。因此,我们统计了恢复延迟分布和正则化次数,并根据统计结果判断容器业务运行过程是否遇到了瓶颈。IO资源:包括容器读写等待时间、队列数、平均字节数。抖动是日常运维过程中偶尔会出现的问题。在零星的过程中,很难收集实际的根本原因数据。如果采集的数据过多,会影响系统的整体性能;如果收集的数据太少,则不足以分析问题的根本原因。业务抖动的原因可以归纳为以下三类:进度/线程调度延迟:比如运行队列挤,排队时间长,高优先级应用抢占,或者调度策略设置不合理。中断和软中断响应不及时:业务运行过程会依赖于中断和软中断的执行过程,包括网络收发包、IO读写等,因此可以通过分析中断持续时间来判断中断的响应时间。内核模式执行时间过长:包括系统本身的瓶颈和内核对其他资源的竞争。以上三类原因基本可以涵盖70%-80%的抖动根本原因,因此针对以上三类问题进行测试,基本可以解决抖动问题。SysAk还增强了系统健康警报。例如,应用程序没有出现抖动,但突然变慢了。经过长时间的积累,系统会进入无法使用的状态,如夯实。夯实会产生较大的影响,而且大部分是无法恢复的。但在此之前,可以通过多种方式进行预警。比如可以通过算法查看打桩机的冲击指标,判断打桩机是否会发生,提前做出健康预测。主要判断指标包括调度延迟、内核态锁争用延迟、内存回收延迟等。根据以往经验,我们将当前异常引用阈值设置为50%。SysAK目前主要用于单机诊断和监控。除了在机器上使用SysAKmservice命令直接查看数据外,还支持以http端口的形式对外提供数据服务,如上图所示。同时,还可以根据数据进行图形化展示。3.未来演进路线未来除了完善工具本身的使用场景外,我们还将继续增强SysAK的其他能力。目前SysAK只能进行系统层面的诊断,未来我们也会考虑应用层面的诊断,为应用诊断提供更多的数据。另外,SysAK已经在DragonLizard开源,希望更多的开发者加入进来,让运维发展的更好。我们也希望SysAK工具继续发展成为运维平台的技术数据采集功能,所以我们会专注于平台插件。目前已经作为SysOM和云监控的组件使用,未来希望扩展为Prometheus插件,满足更多场景。相关地址链接:系统运维SIG:https://openanolis.cn/sig/sysom源码官网:https://gitee.com/anolis/sysak关于DragonLizardeBPF&LinuxStability专题课件获取方法:【PPT课件获取】:关注微信公众号(OpenAnolis)回复“龙百合课件”即可获取。如有任何问题,欢迎随时咨询龙蜥小助手——小龙(微信:openanolis_assis)。【视频播放】:视频播放已上传到龙百合官网:https://openanolis.cn/video可以查看。-超过-