免费开源!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.rhkb.cn/news/476361.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis基本的全局命令

在学习redis基本的全局命令之前呢,我们必须先进入redis-cli客户端才行。 如图: get和set get和set是redis两个最核心的命令。 get:根据key来获取value。 set:把key和value存储进去。 如set命令如图: 对于上述图中&…

招商蛇口|在低密园林里,开启生活的“任意门”

“最好的建筑是这样的,我们深处在其中,却不知道自然在哪里终了,艺术在哪里开始。” 凭借深耕西安10载的城市远见,以及建立在成功人居经验之上的敏锐洞察,招商蛇口将林语堂名言里的生活,变成了现实。 都市化越是加速&…

2024年亚太数学建模竞赛问题C宠物产业及相关产业发展分析与对策

随着人们消费理念的发展,随着经济的快速发展和人均收入的提高,宠物产业作为一个新兴产业在全球范围内逐渐积聚势头。1992年,中国小动物保护协会成立,随后1993年,皇家狗狗、玛氏等国际宠物品牌进入中国市场。随着“宠物…

嵌入式面试八股文(九)·FreeRTOS与Linux的区别与相同点、多进程与多线程的区别、为什么项目使用多线程

目录 1. FreeRTOS与Linux的区别与相同点 1.1 相同点 1.1.1 任务调度 1.1.2 多任务支持 1.1.3 内存管理 1.1.4 中断处理 1.1.5 同步机制 1.2 不同点 1.2.1 设计目标 1.2.2 实时性 1.2.3 内存管理 1.2.4 进程管理 1.2.5 多核支持 1.2.6 硬件支持 1.…

SpringBoot(8)-任务

目录 一、异步任务 二、定时任务 三、邮件任务 一、异步任务 使用场景:后端发送邮件需要时间,前端若响应不动会导致体验感不佳,一般会采用多线程的方式去处理这些任务,但每次都需要自己去手动编写多线程来实现 1、编写servic…

css:感觉稍微高级一点的布局

精灵图 有时候我们下载网页里的小元素图片的时候,就会一下子下载一大张,这就是精灵图,也叫雪碧图(sprites) 一个网页由很多图像作为修饰,当网页中图像过多时,服务器会频繁地解释和发送氢气图片…

docker安装zabbix +grafana

安装zabbix grafana 1、部署 mkdir -p /opt/zabbix/{data,backups}mkdir -p /opt/grafanasudo chown -R 472:472 /opt/grafanasudo chmod -R 755 /opt/grafanacat > docker-compose.yml <<-EOF version: 3.3services:mysql-server:image: mysql:8.1container_name: m…

什么是Hadoop

Hadoop 介绍 Hadoop 是由 Apache 开发的开源框架&#xff0c;用于处理分布式环境中的海量数据。Hadoop 使用 Java 编写&#xff0c;通过简单的编程模型允许在集群中进行大规模数据集的存储和计算。它具备高可靠性、容错性和扩展性。 分布式存储&#xff1a;Hadoop 支持跨集群…

六大核心应用场景,解锁AI检测系统的智能安全之道

AI检测系统基于深度学习、计算机视觉和多模态数据融合技术&#xff0c;广泛应用于工业、能源、制造等高风险作业领域&#xff0c;旨在实现作业安全、流程规范和效率提升的智能化管理。以下是系统主要应用场景的概述&#xff1a; 1. 高风险作业安全监控 应用场景&#xff1a;高压…

Verilog HDL可综合与不可综合语句

目录 什么是逻辑综合 可综合语句 不可综合语句 逻辑综合建模建议 综合流程 什么是逻辑综合 所谓逻辑综合就是在标准单元库和特定的设计约束的基础上&#xff0c;把设计的高层次描述转换成优化的门级网表的过程。 标准单元库&#xff08;工艺库&#xff09;可以包含简单的…

SpringBoot中设置超时30分钟自动删除元素的List和Map

简介 在 Spring Boot 中&#xff0c;你可以使用多种方法来实现自动删除超时元素的 List 或 Map。以下是两种常见的方式&#xff1a; 如果你需要简单的功能并且不介意引入外部依赖&#xff0c;可以选择 Guava Cache。如果你想要更灵活的控制&#xff0c;使用 Spring 的调度功能…

@RequestBody、@Data、@Validated、@Pattern(regexp=“?“)(复习)

目录 一、注解RequestBody。 二、注解Data。 三、注解Validated、Pattern(regexp"?")。 1、完成实体参数&#xff08;对象属性&#xff09;校验。 2、NotNull、NotEmpty、Email。 一、注解RequestBody。 &#xff08;如&#xff1a;JSON格式的数据——>Java对象&…

使用uniapp开发微信小程序使用uni_modules导致主包文件过大,无法发布的解决方法

在使用uniapp开发微信小程序时候&#xff0c;过多的引入uni_modules的组件库&#xff0c;会导致主包文件过大&#xff0c;导致无法上传微信小程序&#xff0c;主包要求大小不超过1.5MB.分包大小每个不能超过2M。 解决方法&#xff1a;分包。 1.对每个除了主页面navbar的页面进…

NVR录像机汇聚管理EasyNVR大华NVR管理平台:深耕视频监控市场的多元化兼容

在当今快速发展的视频监控行业中&#xff0c;技术的日新月异与设备种类的繁多给系统集成与运维带来了前所未有的挑战。为了应对这一现状&#xff0c;EasyNVR作为一款集视频流接收、转发、存储、管理于一体的综合型视频服务平台&#xff0c;凭借其深厚的技术积累和对市场的精准洞…

游戏行业趋势:“AI、出海、IP”大热下,如何提升竞争力?

游戏&#xff1a;新品供给影响业绩释放节奏&#xff0c;后续游戏新品逐步上线&#xff0c;或驱动板块业绩修复 2024年前三季度A股游戏板块实现营业收入681.8亿元&#xff0c;同比增长5.1%&#xff0c;实现归母净利润73.3亿元&#xff0c;同比下滑30.4%&#xff0c;或主要受 20…

【vba源码】导入excel批注信息

Hi&#xff0c;大家好呀&#xff01; 又到了一周一分享的时间&#xff0c;上周繁忙的我都没有给大家直播&#xff0c;视频也没更新&#xff0c;那这周大家放心&#xff0c;都会给大家更新&#xff0c;今天我们来讲点啥呢&#xff1f;每周找优质的内容给大家更新是我最最痛苦的…

Spark SQL大数据分析快速上手-完全分布模式安装

【图书介绍】《Spark SQL大数据分析快速上手》-CSDN博客 《Spark SQL大数据分析快速上手》【摘要 书评 试读】- 京东图书 大数据与数据分析_夏天又到了的博客-CSDN博客 Hadoop完全分布式环境搭建步骤-CSDN博客,前置环境安装参看此博文 完全分布模式也叫集群模式。将Spark目…

nginx代理解决跨域问题CORS错误

配置如下 # 允许跨域请求add_header Access-Control-Allow-Origin *;# 允许带身份验证信息的跨域请求add_header Access-Control-Allow-Credentials true;# 允许的请求方法add_header Access-Control-Allow-Methods GET, POST, OPTIONS;# 允许的请求头add_header Access-Contro…

H.264/H.265播放器EasyPlayer.js视频流媒体播放器关于websocket1006的异常断连

EasyPlayer.js无插件H5播放器属于一款高效、精炼、稳定且免费的流媒体播放器&#xff0c;可支持多种流媒体协议播放&#xff0c;无须安装任何插件&#xff0c;起播快、延迟低、兼容性强&#xff0c;使用非常便捷。 EasyPlayer.js播放器不仅支持H.264与H.265视频编码格式&#x…

uniapp开发微信小程序笔记3-全局配置、导航栏配置、tabBar配置

前言&#xff1a; 本文记录的是微信小程序的全局配置、导航栏配置、tabBar配置 一、全局配置&#xff1a; 可以直接查官方文档&#xff1a;pages.json 页面路由 | uni-app官网&#xff0c;有非常详细的文档说明 都是在 pages.json里面做配置的&#xff0c;我们可以看到已经有…