当前位置: 首页 > news >正文

免费开源!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

http://www.lryc.cn/news/486827.html

相关文章:

  • Bufferevent and SSL
  • 我要成为算法高手-位运算篇
  • 分布式IO模块:智慧楼宇的“智慧眼”与“智慧手”
  • 嵌入式八股文
  • 【IOS】Undefined symbol: _OBJC_CLASS_$_PAGFile
  • Spring Boot整合Tomcat底层源码分析
  • 工具类-基于 axios 的 http 请求工具 Request
  • WPF的基础控件详解
  • qt学习:截图+键盘事件
  • Scala中Arry
  • 学习threejs,使用AnimationMixer实现变形动画
  • 两大新兴开发语言大比拼:Move PK Rust
  • 基于一种基于OCR图像识别技术的发票采集管理系统及方法
  • 基于深度学习的车牌检测系统的设计与实现(安卓、YOLOV、CRNNLPRNet)+文档
  • JavaWeb——JS、Vue
  • Springboot 整合 Java DL4J 构建股票预测系统
  • ATmaga8单片机Pt100温度计源程序+Proteus仿真设计
  • FPGA通过MIPI CSI-2发送实时图像到RK3588,并HDMI显示
  • ELK8.15.4搭建开启安全认证
  • 原生微信小程序中封装一个模拟select 下拉框组件
  • 商品管理系统引领时尚零售智能化升级 降价商品量锐减30%
  • UE5 5.1.1创建C++项目,显示error C4668和error C4067
  • spring boot 集成 redis 实现缓存的完整的例子
  • json-bigint处理前端精度丢失问题
  • 【算法】【优选算法】前缀和(下)
  • Node.js 23 发布了!
  • 如何通过低代码逻辑编排实现业务流程自动化?
  • thinkphp6模板调用URL方法生成的链接异常
  • Spring Boot汽车资讯:科技驱动的未来
  • 嵌入式硬件电子电路设计(五)LDO低压差线性稳压器全面详解