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

相关文章:
免费开源!DBdoctor推出开源版系统诊断工具systool
前言 在开发和运维过程中,经常会遇到难以定位的应用问题,我们通常需要借助Linux系统资源监控工具来辅助诊断。然而,系统的IO、网络、CPU使用率以及文件句柄等信息通常需要通过多个独立的命令工具来获取。在没有部署如Prometheus这样的综合…...
Bufferevent and SSL
bufferevent可以使用OpenSSL库实现SSL/TLS安全传输层。因为很多应用不需要或者不想链接OpenSSL,这部分功能在单独的libevent_openssl库中实现。未来版本的libevent可能会添加其他SSL/TLS库,如NSS或者GnuTLS,但是当前只有OpenSSL。 OpenSSL功能…...
我要成为算法高手-位运算篇
目录 1. 判断字符是否唯一2. 消失的数字3. 两整数之和4. 只出现一次的数字II5. 消失的两个数字 前情提要:如果对一些常见的二进制位运算不熟悉,请看这篇文章: 常见的位运算 1. 判断字符是否唯一 面试题 01.01. 判定字符是否唯一 - 力扣&…...
分布式IO模块:智慧楼宇的“智慧眼”与“智慧手”
在现代化的城市建设中,智慧楼宇作为一种集成了建筑、通信、计算机和控制等多方面技术的新型建筑,正逐渐成为城市发展的重要驱动力。智慧楼宇不仅提高了建筑设备的运行效率,降低了能源消耗,还提供了更加安全、舒适和便捷的生活办公…...
嵌入式八股文
硬件 1.CPU、MPU、MCU、SOC联系与差别 Cpu是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。差不多所有的CPU的运作原理可分为四个阶 段:提取(Fetch)、解码(Dec…...
【IOS】Undefined symbol: _OBJC_CLASS_$_PAGFile
项目场景: flutter构建framework包,ios导入时,报PAG动画第三方库引用错误问题。 问题描述 Undefined symbol: _OBJC_CLASS_$_PAGFile Undefined symbol: _OBJC_CLASS_$_PAGPlayer Undefined symbol: _OBJC_CLASS_$_PAGSurface 1.第三方PAG…...
Spring Boot整合Tomcat底层源码分析
引言 Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置和起步依赖等特性,大大简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring…...
工具类-基于 axios 的 http 请求工具 Request
基于 axios 的 http 请求工具 基于 axios 实现一个 http 请求工具,支持设置请求缓存和取消 http 请求等功能 首先实现一个 简单的 http 请求工具 import axios, {AxiosError,AxiosInterceptorManager,AxiosRequestConfig,AxiosResponse, } from axios;// 接口返回…...
WPF的基础控件详解
WPF的基础控件详解 在WPF学习中 基本控件是最简单也是最基础的东西。也是很初学者容易忽略的 本此笔记教程主要针对WPF中基础控件使用和应用进行手把手教学,如果学习了此笔记对你有帮助记得一键三连哦~~~~ TextBlock 基本用法 长字串处理 LineBreak标籤在指定的地…...
qt学习:截图+键盘事件
效果 生成一个透明无边框全屏的窗口,然后按ctrlb键就可以选择区域进行截图保存 步骤 新建一个项目新建一个ctrlb类继承QMainWindow新建一个CaptureScreen类继承QWidget在main中启动ctrlb类 代码 ctrlb类.cpp #include "ctrlb.h" #include "cap…...
Scala中Arry
import scala.collection.mutable.ArrayBuffer //Arry:数组 //可修改的:ArryBuffer //不可修改的:Arryobject Test_1118_2 {//可修改的:ArrayBufferdef main(args: Array[String]): Unit {//1.新建val arr1ArrayBuffer(1,2,3)//2.添加arr14a…...
学习threejs,使用AnimationMixer实现变形动画
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.AnimationMixer 动画…...
两大新兴开发语言大比拼:Move PK Rust
了解 Move 和 Rust 的差异有助于开发者根据项目的具体需求选择最合适的语言。选择不恰当的语言可能会导致项目后期出现技术债务。不同语言有其独特的优势。了解 Move 和 Rust 的差异可以帮助开发者拓展技术视野,发现不同语言在不同领域的应用潜力。 咱们直奔主题&a…...
基于一种基于OCR图像识别技术的发票采集管理系统及方法
本发明涉及了一种基于OCR图像识别技术的发票采集管理系统及方法,该系统的发票信息采集单元采集发票图片信息数据,OCR图像识别单元基于OCR图像识别技术并结合人工智能深度学习算法对发票图片信息数据进行识别读取以获得OCR图像识别结果,发票信…...
基于深度学习的车牌检测系统的设计与实现(安卓、YOLOV、CRNNLPRNet)+文档
💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…...
JavaWeb——JS、Vue
目录 1.JavaScript a.概述 b.引入方式 c.JS的基础语法 d.JS函数 e.JS对象 f.JS事件监听 2.Vue a.概述 b.Vue常用指令 d.生命周期 1.JavaScript a.概述 JavaScript是一门跨平台、面向对象的脚本语言。是用来控制网页行为的,它能使网页可交互。JavaScript和…...
Springboot 整合 Java DL4J 构建股票预测系统
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
ATmaga8单片机Pt100温度计源程序+Proteus仿真设计
目录 1、项目功能 2、仿真图 3、程序 资料下载地址:ATmaga8单片机Pt100温度计源程序Proteus仿真设计 1、项目功能 设计Pt100铂电阻测量温度的电路,温度测量范围是0-100摄氏度,要求LCD显示。画出电路图,标注元器件参数&am…...
FPGA通过MIPI CSI-2发送实时图像到RK3588,并HDMI显示
介绍FPGA通过MIPI CSI-2发送实时图像到RK3588,并HDMI显示。 FPGA本地产生动态图像模板,通过MIPI CSI-2接口发送到RK3588 MIPI CSI接口。RK3588注册成相机后,调用接口并在HDMI显示器上显示。 1、RK3588驱动调试 查看Media controller信息 Med…...
ELK8.15.4搭建开启安全认证
安装 Elastic :Elasticsearch,Kibana,Logstash 另外安装一个收集器filebeat 通过二进制安装包进行安装 创建一个专门放elk目录 mkdir /elk/ mkdir /elk/soft下载 es 、kibana、Logstash、filebeat二进制包 cd /elk/softwget https://art…...
别再死记硬背截止、放大、饱和了!用Arduino+面包板,5分钟直观演示三极管三种工作状态
用Arduino实战破解三极管工作状态的秘密 记得第一次学三极管时,盯着课本上那些截止区、放大区、饱和区的曲线图,我完全无法理解这些抽象概念和实际电路有什么关系。直到有一天,我在实验室里用Arduino和几个简单元件搭建了一个测试电路&#x…...
边缘AI实战:从医疗到零售的系统级挑战与软硬件协同设计
1. 项目概述:当AI走出云端,走进现实“边缘AI”这个词,现在听起来可能已经不新鲜了,但真正把它从概念变成手边可用的工具,甚至是一个能独立决策的“小脑”,这个过程里踩过的坑、绕过的弯,可能比想…...
GroundTruth-MCP:为AI生成代码构建实时事实核查防火墙
1. 项目概述:当AI助手自信地写出过时代码时你的AI助手刚刚又“自信满满”地给你生成了一堆过时的代码。它告诉你React 19里forwardRef用得没问题,Next.js 15的cookies()还是同步函数,或者用字符串模板拼接SQL查询“既简洁又高效”。更糟的是&…...
AJV $data引用:10个终极动态验证规则实现指南 [特殊字符]
AJV $data引用:10个终极动态验证规则实现指南 🚀 【免费下载链接】ajv The fastest JSON schema Validator. Supports JSON Schema draft-04/06/07/2019-09/2020-12 and JSON Type Definition (RFC8927) 项目地址: https://gitcode.com/gh_mirrors/aj/…...
3分钟掌握百度网盘秒传技术:彻底解决文件分享失效难题
3分钟掌握百度网盘秒传技术:彻底解决文件分享失效难题 【免费下载链接】rapid-upload-userscript-doc 秒传链接提取脚本 - 文档&教程 项目地址: https://gitcode.com/gh_mirrors/ra/rapid-upload-userscript-doc 在数字化协作时代,百度网盘秒…...
自动驾驶人机交接:DMS与安全验证如何破解控制权转移困局
1. 自动驾驶人机交接的核心困境与行业分野最近几年,自动驾驶(AV)和高级驾驶辅助系统(ADAS)无疑是汽车科技领域最炙手可热的话题。无论是传统车企的“新四化”转型,还是科技公司的颠覆性入局,大家…...
工程实践:AI 编程从提示词走向流水线,才需要 API 中转站
这类内容的核心判断应该换一下:用户不是先想买 API,中间才想到 Claude / Codex;很多时候正相反,是先想用 Claude / Codex 提升开发效率,才开始寻找稳定、可接入、可支付、可迁移的 API 入口。目标用户画像想把需求分析…...
从SPICE到Q-SPICE:四阶累积量如何重塑阵列信号处理的超分辨能力
1. 从SPICE到Q-SPICE:为什么我们需要四阶累积量? 我第一次接触SPICE算法是在处理雷达信号的时候。当时团队遇到一个头疼的问题:在强噪声环境下,传统算法就像近视眼观察星空,明明知道那里有信号,却怎么也分辨…...
告别玄学调试:手把手教你用Vivado配置Xilinx SRIO IP核(附完整工程源码)
告别玄学调试:手把手教你用Vivado配置Xilinx SRIO IP核(附完整工程源码) 在FPGA开发领域,高速串行通信一直是工程师们又爱又恨的技术难点。特别是当项目需要实现芯片间高速数据交互时,Serial RapidIO(SRIO…...
别再死记公式了!用Multisim仿真带你玩转反相/同相比例运算电路
用Multisim仿真解锁比例运算电路的实战奥秘 在电子工程的学习中,运算放大器电路一直是让初学者又爱又恨的内容。传统的学习方法往往从公式推导开始,要求学生死记硬背各种电路配置下的增益公式。但今天,我们要打破这种枯燥的学习方式——通过…...
