免费开源!DBdoctor推出开源版系统诊断工具systool

​前言

在开发和运维过程中,经常会遇到难以定位的应用问题,我们通常需要借助Linux系统资源监控工具来辅助诊断。然而,系统的IO、网络、CPU使用率以及文件句柄等信息通常需要通过多个独立的命令工具来获取。在没有部署如Prometheus这样的综合监控系统的情况下,收集这些基础性能指标不仅会增加沟通成本,还会耗费额外的时间。

针对以上难题,DBdoctor推出了一款开源的 Linux 系统监控工具systool,支持一键诊断,欢迎各位小伙伴体验试用,并期待您的宝贵建议,让我们共同推动技术的进步!

工具介绍

systool 是我们基于eBPF以及BCC-tool开发了一款开源的系统诊断小工具。可快速便捷的收集当前系统的负载、CPU使用率、内存消耗、I/O性能和网络状况等关键指标,只需一键操作,就可实现Linux系统的高效监控。

工具编译

确保内核编译配置中包含以下两项:

复制代码
CONFIG_DEBUG_INFO_BTF=yCONFIG_DEBUG_INFO=y

以及安装了llvm编译器,进入项目目录后直接make即可。

工具使用

参数介绍:

  • -C, --noclear 不清除打印

  • -p, --pid=PID 进程号,该工具支持针对单个进程进行分析文件IO以及网络IO

  • -t, --type=TYPE 进程类型,当前支持mysql

  • -v, --verbose 打印eBPF相关的debug信息

以正在压测的MySQL为例,拿到mysqld的进程号后执行./systool -p 27085 -t mysql, 获取到的数据如下:

由上图可知:

  • time : 打印了当前的系统时间

  • loadavg: 打印了当前系统的负载信息

  • sys limits: 打印了当前系统的文件句柄限制、进程数限制以及swap信息

  • cpu: 打印当前CPU的数量及当前指定进程的CPU使用率

  • mem: 打印当前系统的内存大小以及指定进程的内存使用情况

  • soft interrupts : 打印当前系统的软中断情况

  • IO:打印当前进程的IO情况,每个线程的读写次数,读写速率,操作文件名,上级目录名,当type为MySQL时,根据文件名进行文件归类展现文件类型是表或者是UNDO LOG、BIN LOG以及临时文件

  • TCP:打印当前进程(或系统)的TCP协议的网络传输速率

当前MySQL正在进行压测写入,可以看到CPU占用比较高,达到了4.96c; 而在文件IO中可以看到BIN LOG文件在频繁写入,每秒达到了64次,而数据库ffff中表明sbtest8这张表文件有大量的数据写入,每秒有1MB的写入速率。

项目地址

https://github.com/juhaokan

小结

systool工具在对特定进程(如 MySQL)进行分析时,用户可以指定进程并获取详细的文件 IO 和网络传输数据。这种精准的数据收集,可帮助用户迅速识别出可能导致性能下降的因素:比如高 CPU 占用、频繁的文件写入操作以及网络瓶颈等。

通过该工具,可快速的对Linux系统的多个指标进行查看,能够实现对系统状态的全面把握,从而为系统优化和故障修复提供数据支持,辅助问题排查,对问题可以进行一个方向上的初步定位,为日常运维工作提供极大的便利。

*************************************************************************************************************

DBdoctor官网地址:https://www.dbdoctor.cn/?utm=02

相关推荐
PyHaVolask21 分钟前
SQL注入漏洞原理
数据库·sql
ptc学习者31 分钟前
黑格尔时代后崩解的辩证法
数据库
AI大佬的小弟34 分钟前
【小白第一课】大模型基础知识(1)---大模型到底是啥?
人工智能·自然语言处理·开源·大模型基础·大模型分类·什么是大模型·国内外主流大模型
代码游侠36 分钟前
应用——智能配电箱监控系统
linux·服务器·数据库·笔记·算法·sqlite
!chen1 小时前
EF Core自定义映射PostgreSQL原生函数
数据库·postgresql
霖霖总总1 小时前
[小技巧14]MySQL 8.0 系统变量设置全解析:SET GLOBAL、SET PERSIST 与 SET PERSIST_ONLY 的区别与应用
数据库·mysql
马克学长1 小时前
SSM校园食堂订餐系统531p9(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·ssm 校园食堂订餐系统
alonewolf_991 小时前
深入剖析MySQL索引底层:B+树、联合索引与跳跃扫描原理全解
数据库·b树·mysql
oMcLin1 小时前
如何在 AlmaLinux 9 上配置并优化 Redis 集群,支持高并发的实时数据缓存与快速查询?
数据库·redis·缓存
洛阳纸贵1 小时前
Redis
数据库·redis·缓存