阿里sysAK工具简析

概述

根据阿里官网上的介绍,sysAK,全称是system analyse kit,目前主要来自于阿里百万服务器运维经验,通过对这些经验进行抽象总结出典型场景,提供了一系列工具针对不同的运维需求。

主要包括:

• 线上问题分析诊断:(比如负载异常、网络抖动、内存泄漏、io毛刺、性能异常等等)针对性的提供工具, 同时减少工具的专业性,让用户更易使用和解读。

• 资源监控: 针对各种系统资源更精细化的资源监控,帮助业务运维实现细粒度的运维调度,和资源控制。

• 故障止血: 总有不可预期的问题会发生,真正问题发生后需要及时恢复,对于不是整机异常的问题(死锁、夯机), 提供介入能力对系统进行恢复或故障隔离。

同时,sysAK工具本身不会为系统带来更大的负载开销,避免引起抖动问题。sysAK通过技术手段保证所有工具同时运行时不超过3%的系统消耗,单个工具不超过1%的系统消耗。

代码库及工具使用介绍

阿里官网上已有不少有关sysak的使用命令介绍。参考这里

sysak的开源代码库参考这里(可能需要注册登录后才能克隆下载)。

工具使用

下载代码到本地,看看支持哪些功能。

sysak支持的模块功能:

请添加图片描述
利用configure脚本生成Makefile:

./configure --enable-lkm --enable-libbpf --enable-target-all --disable-target-pagescan

这里我将pagescan模块给disable了,因为和我内核版本有兼容问题,编译出错,所以先disable掉。

编译后,sysak脚本list查看功能。有些功能好像要单独去跑命令,比如pingtrace_raw
请添加图片描述

使用举例

使用sysak的runlatency功能来监测latency。

sysak runlatency -e #开启runlatency,会发现多了/proc/sysak/目录

请添加图片描述

目前看sysAK支持还不是很好,对内核有兼容依赖,目前支持3.10,4.10,4.19比较好,其他内核版本或多或少可能会遇到问题(笔者就遇到不少坑)。估计sysAK还在完善中,需要开源社区的共同贡献。

原理简析

简要分析了下sysak的源码目录,其代码主要框架我整理如下图。内核核心有sysak.ko支持,前端工具用shell脚本、python等语言编写。主要的事件源还是来自tracepoint、kprobe、eBPF、perf_event等。

请添加图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值