2022云栖精选-系统运维利器,百万服务器运维实战总结!一文了解最新版SysAK

简介: 张毅 阿里云智能高级技术专家

一、SysAK框架介绍
1.png

SysAK 全称为System Analyse Kit,是龙蜥系统运维SIG。我们通过对过往百万服务器运维经验进行抽象总结,提供了一个全方位的系统运维工具集,可以覆盖系统日常监控、线上问题诊断和系统故障修复等常见运维场景。主要包括三个方面:
l 系统监控:针对各种系统资源(CPU、内存、网络、文件IO、内核管理结构等)提供更精细化的资源监控,帮助业务运维实现细粒度的运维调度,高效运用资源。
l 系统诊断:诊断的典型问题如负载异常、网络抖动、内存泄漏、io毛刺、性能瓶颈、应用异常等,针对性提供工具,同时尽量减少工具的专业性,让用户更易使用和解读。
l 系统介入:主要针对故障注入、系统恢复和故障隔离3种情况提供系统介入的能力。
2.png

SysAK 框架包括两大模式,分别为监控模式和诊断模式。
系统资源瓶颈指标包括CPU瓶颈、内存瓶颈、网络瓶颈、IO 瓶颈,通过对瓶颈的监控可以发现应用运行过程中对资源的依赖度,再通过依赖度有效配合其他数据,对应用做合理的调度和资源分配。
除了硬件四大资源之外,系统软件本身也也存在瓶颈,比如Linux内核系统实现各种文件、句柄、cache、共享资源的访问过程中都有可能会产生并发瓶颈, SysAK 针对于此也做了很多工作。
干扰是应用运行过程中是比较常见的因素,会引发抖动或运行中断等。针对目前云原生的趋势下,SysAK实现了容器资源可视化。
诊断模式指及时发现问题,并根据问题根因做诊断,随用随起。根据用户运维场景目前支持这三类:
l 系统负载分析:系统负载时系统运维过程中的典型问题,可以针对于此进行根因分析,避免影响进程堆栈。
l 系统健康一键诊断:比如对系统各个资源维度进行分析,查看配置是否合理等。
l IO问题自动诊断:比如分析IO 打满时,是应用瓶颈还是业务底层存储瓶颈导致。
除了用户场景,我们也针对高级技术人员提供了更深层次的数据诊断,比如系统调用数据耗时较长的函数、中断运行统计、调度模块、内存模块、延时抖动、内存泄露等,会根据每个子系统的特点做专项功能诊断。
3.png

SysAK通过松散耦合、依赖管理、多架构多版本的构建支持等方式保障工具的开发者仅需一次开发、无需额外工作,即可在主流的架构和操作系统版本上集成。
二、SysAK监控场景应用
4.png

SysAK的监控服务mservice主要提供了资源监控、异常告警、根因分析三大能力。其中异常告警功能会设定特殊阈值,提供告警,并进行自动分析。
5.png

SysAK能够利用增强指标监控容器资源的使用,主要依托于龙蜥 OS 内核的增强特性以及SysAK 本身的扩展。
计算资源方面:包括容器负载、运行和阻塞任务数。
内存资源方面:内存使用过程中会频繁遇到瓶颈,主要针对延迟做了增强监控。内存回收延迟包括全局内存回收和容器内存回收,两者都都会影响容器的服务运行状态。因此我们对回收延迟分布以及规整次数做了统计,根据统计结果判断容器业务运行过程是否遇到瓶颈。
IO资源方面:包括容器读写等待时间、排队个数以及平均字节数。
6.png

抖动是日常运维过程偶发的问题。而偶发过程中难以采集实际的根因数据。如果数据采集过多,会影响整体系统性能;而采集过少则不足以分析问题根因。引发业务抖动的原因可以总结为以下三类:
① 进行/线程调度延迟:比如运行队列挤压、排队时间过长以及高优先级应用抢占或本身调度策略设置不合理。
② 中断和软中断响应不及时:业务运行过程会依赖于中断和软中断执行过程,包括网络收发包、IO 读写等。因此可以分析关中断时长来判断中断的响应时间。
③ 内核态执行过长:包括系统本身存在的瓶颈以及内核里其他资源竞争等情况。
上述三大类原因基本能够覆盖70%-80%的抖动根因,因此针对以上三类问题进行检测,大多可以解决抖动问题。
7.png

SysAk对系统健康告警也做了增强。
比如应用没有发生抖动,但突然变慢,长时间的积累会导致系统进入不可用状态,比如夯机。夯机会造成较大影响,且大多不可恢复。但在此之前可以通过多种手段提前预警,比如可以通过算法查看夯机的影响指标,判断是否会发生夯机,提前做健康度预判等。主要判断指标包括调度的延迟、内核态锁竞争时延、内存回收时延等。
结合过往经验,我们将当前的异常参考阈值定为50%。
8.png

SysAK目前主要用于单机诊断和监控,而除了在机器上使用SysAK mservice命令直接查看数据外,也支持以http端口的形式对外提供数据服务,如上图。同时,也可根据数据做图形化展示。
三、未来演进路线
9.png

SysAK已经在龙蜥开源,我们希望更多开发者加入,让运维发展得更好。未来,除了完善工具本身的使用场景,我们将持续增强SysAK的其他能力。目前,SysAK仅能在系统级做诊断,后续我们也将考虑从应用级别做诊断,为应用诊断提供更多数据。
另外,我们也希望 SysAK 工具持续发展,作为运维平台的技术数据采集发挥特性,因此会着重于平台插件化。目前,它已经作为SysOM和云监控的组件在使用,未来希望能够作为Prometheus的插件扩展以满足更多场景。
相关地址链接:
系统运维SIG:https://openanolis.cn/sig/sysom
源码官网:https://gitee.com/anolis/sysak

目录
相关文章
|
7天前
|
运维 应用服务中间件 持续交付
自动化运维的利器:Ansible实战应用
【9月更文挑战第33天】本文将带你深入理解Ansible,一个强大的自动化运维工具。我们将从基础概念开始,逐步探索其配置管理、任务调度等功能,并通过实际案例演示其在自动化部署和批量操作中的应用。文章旨在通过浅显易懂的语言和实例,为读者揭开Ansible的神秘面纱,展示其在简化运维工作中的强大能力。
112 64
|
6天前
|
运维 负载均衡 应用服务中间件
自动化运维:使用Ansible进行服务器配置管理
【9月更文挑战第34天】在现代IT运维工作中,自动化已成为提升效率、减少错误的关键。本文将介绍如何使用Ansible这一强大的自动化工具来简化和加速服务器的配置管理工作。我们将通过实际案例展示如何利用Ansible的Playbooks来自动化常见任务,并讨论其对提高运维团队工作效率的影响。
|
5天前
|
运维 应用服务中间件 网络安全
自动化运维:使用Ansible进行批量服务器配置
【9月更文挑战第35天】在现代IT基础设施管理中,高效、可扩展的自动化工具是提升工作效率的关键。本文将引导您了解如何使用Ansible这一强大的自动化工具来简化和加速服务器的配置过程,确保一致性和可靠性的同时减少人为错误。通过实际案例,我们将展示如何编写Ansible Playbook以实现批量服务器配置,从而让您能够更加轻松地管理和维护您的服务器群。
|
16天前
|
运维 安全 应用服务中间件
自动化运维的利剑:Ansible实战应用
【9月更文挑战第24天】在现代IT基础设施的快速迭代与扩展中,自动化运维成为提升效率、保障稳定性的关键。本文将深入探讨Ansible这一流行的自动化工具,通过实际案例分析其如何简化日常运维任务,优化工作流程,并提高系统的可靠性和安全性。我们将从Ansible的基础概念入手,逐步深入到高级应用技巧,旨在为读者提供一套完整的Ansible应用解决方案。
|
6天前
|
运维 监控 大数据
高效运维管理:提升系统稳定性的策略与实践
在当今信息技术飞速发展的时代,运维管理作为保障系统稳定运行的关键环节,其重要性不言而喻。本文将深入探讨如何通过优化运维流程、引入自动化工具和建立完善的监控体系等策略,来有效提升系统的稳定性。同时,结合具体实践案例,分析这些策略在实际工作中的应用效果,为运维人员提供有益的参考和启示。
34 6
|
2天前
|
运维 应用服务中间件 nginx
自动化运维:使用Ansible管理服务器
【8月更文挑战第70天】随着互联网技术的飞速发展,服务器的数量和复杂性也在日益增加。如何高效、准确地管理这些服务器,成为了每一个运维人员必须面对的问题。本文将介绍如何使用Ansible这个开源的IT自动化工具,来帮助我们更好地管理服务器。Ansible以其简洁的语法、强大的功能和易于上手的特性,成为了运维人员的好帮手。我们将通过一些实际的例子,来看看Ansible是如何工作的。
|
9天前
|
运维 负载均衡 监控
提升系统性能:高效运维的秘密武器——负载均衡技术
在当今数字化时代,系统的高可用性和高性能成为各类企业和组织追求的目标。本文旨在探讨负载均衡技术在运维工作中的关键作用,通过深入分析其原理、类型及实际应用案例,揭示如何利用这项技术优化资源分配,提高系统的响应速度和可靠性,确保用户体验的稳定与流畅。无论是面对突如其来的高流量冲击,还是日常的运维管理,负载均衡都展现出了不可或缺的重要性,成为现代IT架构中的基石之一。
27 4
|
11天前
|
存储 运维 Ubuntu
自动化运维:使用Ansible管理服务器
【8月更文挑战第61天】本文将介绍如何使用Ansible工具进行服务器的自动化管理。我们将从基础概念开始,逐步深入到实际的应用案例,最后通过代码示例展示如何实现自动化部署和配置管理。无论你是初学者还是有经验的运维工程师,这篇文章都会为你提供有价值的参考。
|
14天前
|
运维 监控 应用服务中间件
自动化运维:使用Ansible管理服务器
【9月更文挑战第26天】在这篇文章中,我们将探索如何使用Ansible来自动化运维任务。Ansible是一种简单而强大的自动化工具,可以简化服务器管理和配置过程。通过学习Ansible的基础知识和实践应用,您将能够更高效地管理您的服务器,并减少人为错误。无论您是初学者还是有经验的系统管理员,这篇文章都将为您提供宝贵的见解和实用的技巧。让我们一起开始学习如何利用Ansible来提升您的运维效率吧!
30 4
|
12天前
|
存储 运维 监控
服务器高效运维管理方案
智能运维作为保障业务连续性和提升系统性能的关键环节,其重要性日益凸显。服务器作为承载各类应用与数据的核心基础设施,其稳定性、安全性和性能直接关系到企业的业务运行效率和用户体验
28 1