自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 基于eBPF的procstat软件追踪C++ STL容器扩容

procstat是一款基于eBPF的监控工具软件,运行在Linux平台,主要用于跟踪目标程序的运行状态,并报告异常指标,是分析程序性能问题的一大利器。procstat软件结合前文提到的smart_stl库形成的方案能够用于追踪程序的STL容器扩容情况,实时捕捉STL扩容信息。当检测到扩容时间超过阈值的情况时,procstat会在日志中输出详细的信息,包括扩容时长、扩容次数、发生扩容的用户态堆栈等,帮助开发者快速定位问题根源。

2024-08-14 21:42:22 644

原创 Linux性能监控:sar的可视化方案

在当今的IT环境中,系统性能监控是确保应用程序稳定运行和快速响应问题的关键。Linux作为一种广泛使用的操作系统,拥有多种性能监控工具,其中sar(System Activity Reporter)因其全面性和灵活性被广泛采用。然而,传统的sar输出格式为文本,虽然有生成图的功能 ,但不易于快速分析和实时监控。为了克服这一不足,本文设计了一套完整的可视化方案,通过实时展示sar的数据,极大地提升了性能监控的效率和直观性。

2024-07-27 14:56:24 812

原创 基于eBPF的procstat软件追踪程序Offcpu时间

procstat是一款基于eBPF的监控工具软件,运行在Linux平台,主要用于跟踪目标程序的运行状态,并报告异常指标,是分析程序性能问题的一大利器。procstat能够用于追踪程序的Offcpu时间。该软件通过eBPF技术,可以深入到Linux内核内部,监控操作系统的调度行为,实时捕捉程序的调度状态。

2024-07-12 17:16:01 1641

原创 基于eBPF的procstat软件追踪等待锁和持有锁的时间

procstat是一款基于eBPF的监控工具软件,运行在Linux平台,主要用于跟踪目标程序的运行状态,并报告异常指标,是分析程序性能问题的一大利器。同时,procstat也可用于追踪C/C++程序的等待锁和持有锁的时间。该软件通过eBPF技术,可以深入到标准库内部,监控线程的锁定和解锁行为,实时捕捉程序的运行状态。当检测到加锁和等待锁时间超过阈值的情况时,procstat会在日志中输出详细的警告信息,帮助开发者快速定位问题根源。

2024-07-09 12:50:15 824

原创 基于eBPF的procstat软件定位软件死锁

procstat是一款基于eBPF的监控工具软件,运行在Linux平台,主要用于跟踪目标程序的运行状态,并报告异常指标,是分析程序性能问题的一大利器。同时,procstat也可用于检测和定位C/C++多线程程序中的死锁问题。

2024-07-05 12:58:22 1019

原创 动态控制eBPF程序加载:检查 Tracepoint、Kprobe是否存在

在 eBPF 程序开发中,确保程序能够在各种不同的系统配置中兼容运行是至关重要的。本文将详细介绍一个方案,通过动态检查Tracepoint、Kprobe是否存在,并结合libbpf的API接口控制 eBPF 程序的加载。这种方法不仅可以提升程序的灵活性,还能提高其在不同内核版本和系统配置中的兼容性。检查指定的 Tracepoint 是否存在;检查指定的 Kprobe 是否存在;

2024-06-02 22:23:47 818

原创 GDB对Linux信号的处理方式

文旨在深入探讨GDB如何处理Linux信号,以及不同信号处理方式对调试的影响。

2024-05-22 17:28:50 1126

原创 gcc编译选项-Wl,-Bsymbolic/-Wl,-Bsymbolic-functions解决动态库符号冲突问题

使用gcc编译选项-Wl,-Bsymbolic或-Wl,-Bsymbolic-function解决动态库符号冲突问题。

2024-05-17 17:15:45 2196

原创 替换动态库的函数实现

如何使用自己实现的函数替换掉动态链接库中的函数实现。

2024-05-15 08:30:18 544

原创 使用gperftools对C++程序进行profile定位性能瓶颈

如何使用gperftools工具定位C/C++程序的性能瓶颈,并用kcachegrind工具进行可视化展示。

2024-05-09 17:26:46 2453

原创 性能测试缩减系统内存

性能测试中,如何调整Linux服务器的可用内存大小。

2024-05-08 17:27:02 430

原创 使用gdb判断Segmentation fault (core dump)是否为栈溢出导致

当发生coredump时,如何快速的排查是否是由于栈溢出导致的。

2024-05-07 12:38:13 863

原创 性能测试缩减CPU核数

性能测试中,如何动态调整Linux服务器的CPU核数

2024-05-06 21:33:06 480 2

原创 linux静态库合并实践

将多个静态库合并成一个

2024-05-05 23:58:36 670

原创 gdb调试C++多线程程序

使用gdb调试C++多线程程序

2024-05-04 00:57:46 1102

原创 C/C++多线程中互斥锁如何影响内存的可见性

C/C++多线程并发编程中,互斥锁如何影响内存的可见性

2024-05-02 01:04:51 618

原创 gdb调试时更换源码目录

使用gdb调试时切换源代码目录

2024-04-30 19:00:51 993

原创 使用gdb调试C++程序的汇编代码

使用gdb调试C++程序的汇编代码

2024-04-29 22:14:33 2272

原创 剥去ELF可执行文件中的Debug信息

为ELF可执行文件剥除/添加调试信息

2024-04-28 10:39:02 510 1

procstat-0.0.2.20240703-beta

软件名称 : procstat 版本号 : 0.0.2.20240703_beta 功能: 此软件是一个性能追踪工具,基于ebpf技术实现,能够跟踪目标程序的运行状态,并报告异常指标,是分析程序性能的一大利器 运行平台:Linux 内核版本要支持ebpf、CORE 支持的操作系统:CentOS Stream 8+、Redhat 8+、Fedora 36+ 其他操作系统,后续会进行测试。 依赖的库:libelf changelog: 1. 支持检测死锁,c库的pthread_mutex_lock,C++的mutex 2. 增加clean.sh脚本,方便删除日志 Copyright (c) 2024 Liu Hua Jun All rights reserved. 自带授权码,一个月内有效。欢迎试用,并提出宝贵意见!

2024-07-03

procstat-0.0.1.20240701-beta

软件名称 : procstat 版本号 : 0.0.1.20240701_beta 功能: 此软件是一个性能追踪工具,基于ebpf技术实现,能够跟踪目标程序的运行状态,并报告异常指标,是分析程序性能的一大利器 运行平台:Linux 内核版本要支持ebpf、CORE 支持的操作系统:CentOS Stream 8+、Redhat 8+、Fedora 36+ 其他操作系统,后续会进行测试。 依赖的库:libelf Copyright (c) 2024 Liu Hua Jun All rights reserved. 自带授权码,一个月内有效。欢迎试用,并提出宝贵意见!

2024-07-02

禁用某eBPF程序源代码

在 eBPF 程序开发中,确保程序能够在各种不同的系统配置中兼容运行是至关重要的。本源码展示了如何使用libbpf的API接口将不存在的挂载点对应的eBPF程序禁止加载。这种方法不仅可以提升程序的灵活性,还能提高其在不同内核版本和系统配置中的兼容性。

2024-06-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除