- 博客(21)
- 收藏
- 关注
原创 IO多路复用概述与epoll简介
IO多路复用指的是通过一种机制,让一个线程能够同时等待多个IO操作的完成。不同于阻塞IO模型中的“一个线程一个连接”模式,多路复用可以通过监听多个文件描述符,只有当某个文件描述符就绪时,线程才会被唤醒处理,减少了线程阻塞的时间。
2024-10-20 11:47:47
176
2
原创 基于eBPF的procstat软件追踪程序垃圾回收(GC)事件
procstat是一款基于eBPF的监控软件,运行在Linux平台,主要用于跟踪目标程序的运行状态,并报告异常指标,是分析程序性能问题的一大利器。procstat软件能够用于追踪golang及jvm程序的垃圾回收(GC)情况,实时捕捉垃圾回收相关信息。当检测到垃圾回收的时间超过阈值时,procstat会在日志中输出详细的信息,包括回收时长、回收次数等,帮助开发者快速定位问题根源。接下来我们将通过一个小实验来展示一下procstat软件是如何追踪垃圾回收的
2024-09-20 12:46:47
1134
原创 基于eBPF的procstat软件追踪C++ STL容器扩容
procstat是一款基于eBPF的监控工具软件,运行在Linux平台,主要用于跟踪目标程序的运行状态,并报告异常指标,是分析程序性能问题的一大利器。procstat软件结合前文提到的smart_stl库形成的方案能够用于追踪程序的STL容器扩容情况,实时捕捉STL扩容信息。当检测到扩容时间超过阈值的情况时,procstat会在日志中输出详细的信息,包括扩容时长、扩容次数、发生扩容的用户态堆栈等,帮助开发者快速定位问题根源。
2024-08-14 21:42:22
710
原创 Linux性能监控:sar的可视化方案
在当今的IT环境中,系统性能监控是确保应用程序稳定运行和快速响应问题的关键。Linux作为一种广泛使用的操作系统,拥有多种性能监控工具,其中sar(System Activity Reporter)因其全面性和灵活性被广泛采用。然而,传统的sar输出格式为文本,虽然有生成图的功能 ,但不易于快速分析和实时监控。为了克服这一不足,本文设计了一套完整的可视化方案,通过实时展示sar的数据,极大地提升了性能监控的效率和直观性。
2024-07-27 14:56:24
1138
原创 基于eBPF的procstat软件追踪程序Offcpu时间
procstat是一款基于eBPF的监控工具软件,运行在Linux平台,主要用于跟踪目标程序的运行状态,并报告异常指标,是分析程序性能问题的一大利器。procstat能够用于追踪程序的Offcpu时间。该软件通过eBPF技术,可以深入到Linux内核内部,监控操作系统的调度行为,实时捕捉程序的调度状态。
2024-07-12 17:16:01
1744
原创 基于eBPF的procstat软件追踪等待锁和持有锁的时间
procstat是一款基于eBPF的监控工具软件,运行在Linux平台,主要用于跟踪目标程序的运行状态,并报告异常指标,是分析程序性能问题的一大利器。同时,procstat也可用于追踪C/C++程序的等待锁和持有锁的时间。该软件通过eBPF技术,可以深入到标准库内部,监控线程的锁定和解锁行为,实时捕捉程序的运行状态。当检测到加锁和等待锁时间超过阈值的情况时,procstat会在日志中输出详细的警告信息,帮助开发者快速定位问题根源。
2024-07-09 12:50:15
946
原创 基于eBPF的procstat软件定位软件死锁
procstat是一款基于eBPF的监控工具软件,运行在Linux平台,主要用于跟踪目标程序的运行状态,并报告异常指标,是分析程序性能问题的一大利器。同时,procstat也可用于检测和定位C/C++多线程程序中的死锁问题。
2024-07-05 12:58:22
1140
原创 动态控制eBPF程序加载:检查 Tracepoint、Kprobe是否存在
在 eBPF 程序开发中,确保程序能够在各种不同的系统配置中兼容运行是至关重要的。本文将详细介绍一个方案,通过动态检查Tracepoint、Kprobe是否存在,并结合libbpf的API接口控制 eBPF 程序的加载。这种方法不仅可以提升程序的灵活性,还能提高其在不同内核版本和系统配置中的兼容性。检查指定的 Tracepoint 是否存在;检查指定的 Kprobe 是否存在;
2024-06-02 22:23:47
979
原创 gcc编译选项-Wl,-Bsymbolic/-Wl,-Bsymbolic-functions解决动态库符号冲突问题
使用gcc编译选项-Wl,-Bsymbolic或-Wl,-Bsymbolic-function解决动态库符号冲突问题。
2024-05-17 17:15:45
2943
原创 使用gperftools对C++程序进行profile定位性能瓶颈
如何使用gperftools工具定位C/C++程序的性能瓶颈,并用kcachegrind工具进行可视化展示。
2024-05-09 17:26:46
2815
原创 使用gdb判断Segmentation fault (core dump)是否为栈溢出导致
当发生coredump时,如何快速的排查是否是由于栈溢出导致的。
2024-05-07 12:38:13
1131
procstat-0.0.9.20240911-beta-x64
2024-09-11
procstat-0.0.2.20240703-beta
2024-07-03
procstat-0.0.1.20240701-beta
2024-07-02
禁用某eBPF程序源代码
2024-06-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人