[转帖]如何快速查看进程/子线程堆栈

如何,快速,查看,进程,线程,堆栈 · 浏览次数 : 0

小编点评

**获取进程堆栈的方法** 1. 使用 `gdb attach` 调试进程,使用 `gdb relatedcmd`调试进程 ```bash gdb -p pid ``` 2. 通过 `pstack/gstack` 直接打印堆栈信息 ```bash pstack pid ``` 3. 通过 `gcore` 输出进程coredump文件 ```bash gcore pid ``` 4. 使用 `strace` 打印进程及其子线程的堆栈信息 ```bash strace -f -p pid ``` 5. 查看 `proc` 文件中的 `stack` ```bash cat /proc/pid/stack ```

正文

背景:分析现网问题时,有时需要快速查看某个进程/子线程堆栈调用,便于进一步分析问题,现提供几种不同获取进程堆栈方法。

实现方法:
1.使用gdb attach 调试进程,使用gdb相关cmd调试进程

# gdb -p pid
进入gdb后,可通过
(gdb)bt 查看主进程堆栈
(gdb)info thread 查看线程
(gdb)thread threadid attach 线程
(gdb)bt

    2.通过pstack/gstack直接打印堆栈信息

    # pstack pid
    直接打印堆栈信息,这种方法直接了当
    

      3.通过gcore输出进程coredump文件

      # gcore pid
      # gdb cmd core
      gdb调试进程静态coredump文件
      

        4.strace打印堆栈信息

        # strace -f -p pid
        动态交互打印进程及其子线程的堆栈信息
        

          5.查看proc文件的stack

          # cat /proc/pid/stack 线程堆栈
          # cat /proc/pid/proc/pid/stack 子线程堆栈 
          该方法堆栈信息较少
          

            实际使用中,可以根据实际情况灵活选择不同的方法。

            与[转帖]如何快速查看进程/子线程堆栈相似的内容:

            [转帖]如何快速查看进程/子线程堆栈

            背景:分析现网问题时,有时需要快速查看某个进程/子线程堆栈调用,便于进一步分析问题,现提供几种不同获取进程堆栈方法。 实现方法: 1.使用gdb attach 调试进程,使用gdb相关cmd调试进程 # gdb -p pid 进入gdb后,可通过 (gdb)bt 查看主进程堆栈 (gdb)info

            [转帖]使用Linux命令快速查看某一行

            原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介# 当年,我还是Linux菜鸟的时候,就在简历上写着精通Linux命令了,而当面试官问我“如何快速查看某个文件的第200行,仅这一行”时,我的心里是懵逼的。 当时面试官心里估计在窃喜,从我敷衍的回答中,他应该已经完全

            【转帖】MySQL索引

            数据表如何用索引快速查找 索引是 排好序的快速查找的数据结构 索引存储在文件系统中 索引的文件存储形式与存储引擎有关 索引数据结构:可以是二叉树、红黑树、Hash表、B-Tree、B+Tree 1、二叉树 使用索引的如下图:(如果是使用二叉树结构)每一个节点都存放数据行的磁盘地址【快速定位到数据】

            [转帖] Linux查看日志文件写入速度的4种方法

            https://www.cnblogs.com/codelogs/p/16365448.html 简介# 有时,我们需要查看某个文件的增长速度,如日志文件,以此来感受系统的负载情况,因为一般情况下,日志写入越快,说明系统负载越重。 本文就来介绍下Linux中查看日志增长速度的几种方法,如下: 使用d

            [转帖]java获取到heapdump文件后,如何快速分析?

            https://www.jianshu.com/p/aaf56385766d 简介 在之前的OOM问题复盘之后,本周,又一Java服务出现了内存问题,这次问题不严重,只会触发堆内存占用高报警,没有触发OOM,但好在之前的复盘中总结了dump脚本,会在堆占用高时自动执行jstack与jmap,使得我们

            [转帖]关于Bonree ONE 2.0,那些运维人不知道的一切

            http://blog.itpub.net/31545813/viewspace-2924710/ 近年来,伴随着数字经济的不断深入,以云原生、Devops等为代表的新技术快速发展。传统的IT监控工具多样、分散、庞杂,并且数据种类杂、缺乏关联性,导致整个IT系统不具备真正的可观测性。那么,如何快速发

            [转帖]【技术剖析】11. 使用jemalloc解决JVM内存泄露问题

            https://bbs.huaweicloud.com/forum/thread-169523-1-1.html 作者:王坤 > 编者按:JVM 发生内存泄漏,如何能快速定位到内存泄漏点并不容易。笔者通过使用 jemalloc(可以替换默认的 glibc 库)中的 profiling 机制(通过对程

            【转帖】Linux中如何取消ln链接?(linuxln取消)

            https://www.dbs724.com/163754.html Linux系统使用ln命令可以快速创建链接,ln链接是指把文件和目录链接起来,当改变源时可以快速地改变整个目录下的文件和目录。有时候,某些文件或者目录链接起来不是我们需要的,我们需要使用Linux取消ln链接命令。下面就来简单介绍

            [转帖]轻松快速地调整Kubernetes的CPU和内存

            在Kubernetes中分配和管理CPU和内存资源可能很棘手,但也很容易。本文,我将向你展示什么是Kubernetes资源和限制以及如何管理它们。 本文的目标是简单–如何帮助你快速调整项目中的Kubernetes资源信息,主要通过三种方式: 1. 为容器和 Pod 分配CPU和内存资源 2. Res

            [转帖]性能优化必备——火焰图

            引言 本文主要介绍火焰图及使用技巧,学习如何使用火焰图快速定位软件的性能卡点。结合最佳实践实战案例,帮助读者加深刻的理解火焰图构造及原理,理解 CPU 耗时,定位性能瓶颈。 背景 当前现状 假设没有火焰图,你是怎么调优程序代码的呢?让我们来捋一下。 1. 功能开关法 想当年我刚工作,还是一个技术小白