`

LINUX查看进行下的 所有线程

阅读更多
用ps+grep找到被测试的进程pid。
比如:ps –ef|grep notify,得到pid为29128。
2. 执行top -H -p,可显示出该进程下的所有线程。找到占用cpu最多的子线程pid,并将其转换为16进制。
比如:top -H -p 29128,看到notify的所有子线程。其中,%CPU 比重最大的子线程pid为879,转换成16进制是36f。
3. 执行jstack|less,查找子线程pid就能看到堆栈信息了。
比如:jstack 29128|less,再查找nid=0x36f,看到堆栈如下
"dispatcherTPConfig-6-thread-22" prio=10 tid=0x000000004dd84000 nid=0x36f runnable [0x000000004ae18000]
java.lang.Thread.State: RUNNABLE
at java.util.ArrayList.contains(ArrayList.java:199)
>
……

4. 跟进堆栈中的方法信息定位到代码,接下来就是分析调优了。

后记:
用此方法可以简单、快速定位cpu消耗的原因,但是准确度不够理想。如果想深入查看消耗cpu top10的方法,可以使用专门的性能分析工具,例如oprofile、perf都可以实现。
分享到:
评论

相关推荐

    Linux系统下的多线程编程入门.pdf

    在Linux系统下进行多线程编程是开发高效并发应用程序的关键技术之一。本文将深入探讨Linux环境中的多线程概念、创建与管理线程的方法、线程同步与通信机制,以及多线程编程中可能遇到的问题和解决策略。 一、多线程...

    linux 下 跟踪线程运行情况

    在Linux操作系统中,跟踪线程运行情况是系统管理员和开发者常用的一种...掌握以上知识点,将有助于你在Linux环境下有效地跟踪和管理线程,解决多线程程序中的问题,提升系统性能。记得结合实际应用和具体场景灵活运用。

    linux 多线程编程

    Linux 系统下的多线程遵循 POSIX 线程接口,称为 pthread。编写 Linux 下的多线程程序,需要使用头文件 pthread.h,连接时需要使用库 libpthread.a。Linux 下 pthread 的实现是通过系统调用 clone()来实现的。clone...

    linux下打印线程栈工具源码

    "linux下打印线程栈工具源码" 提供了一种解决方案,通过源码我们可以了解如何实现对多线程环境中的栈信息进行打印。这种技术通常涉及到了`ptrace`系统调用,它允许一个进程(调试器)监视和控制另一个进程(被调试器...

    linux 测试环境线程问题解决

    通过执行`ulimit -a`命令可以查看当前系统对各种资源的限制值,在默认情况下,Linux系统的最大进程数(nproc)和打开文件描述符数(nofile)通常被设置为1024,这对于大多数应用来说可能并不足够,特别是在高并发的...

    linux下的多线程例子

    总结,Linux下的多线程编程是一个重要的技能,通过理解线程的概念、掌握pthread库的使用以及解决多线程中的关键问题,可以编写出高效、可靠的多线程应用程序。这个"linux多线程例子"是学习和实践的好材料,通过实际...

    linux下QT开发的多窗口多线程程序

    在Linux环境下,使用Qt进行开发是一项常见的任务,尤其在创建多窗口、多线程应用程序时。Qt是一个跨平台的应用程序开发框架,支持多种操作系统,包括Linux。本项目着重讲解如何在Linux系统下利用Qt实现一个具有多...

    linux线程库例子

    本主题将深入探讨Linux线程库的使用,以服务端和客户端为例。 1. **线程库介绍** Linux系统提供了多种线程库,最常见的是POSIX线程库(Pthreads),它是跨平台的线程API标准,被广泛支持。Pthreads库提供了一组...

    ACPI&超线程,linux下的使用

    本篇文章将深入探讨这两个主题,并结合Linux环境,详细介绍它们的工作原理以及如何在Linux下进行相关设置。 首先,让我们了解什么是ACPI。ACPI是一种标准化的硬件配置和电源管理协议,它允许操作系统控制计算机的...

    linuxio进程线程网络编程

    Linux提供了丰富的内存管理工具,如`free`用于查看系统内存使用情况,`df`用于显示文件系统磁盘空间的使用情况,`du`用于估算文件或目录占用的磁盘空间。 #### 用户与权限管理 用户管理涉及用户账户的创建、修改和...

    Linux多线程编程入门[参照].pdf

    Linux系统下的多线程编程遵循POSIX线程接口,称为pthread。线程技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,Solaris是这方面的佼佼者。 为什么需要多线程?使用多线程的理由之一是...

    Linux动态启用/禁用超线程技术的方法详解

    这个脚本首先定义了一个变量`HYPERTHREADING`来控制是否启用超线程,然后通过循环遍历`/sys/devices/system/cpu/cpuX`目录下的所有CPU节点,读取`thread_siblings_list`文件以确定逻辑核心的关系。如果当前CPUID与`...

    linux-uboot和套结字多线程

    2. **监控与调试**:开发者可以创建多线程套接字应用,通过网络连接实时查看和控制U-Boot下的设备状态。 3. **远程管理**:通过U-Boot的网络功能,结合多线程套接字,可以实现远程管理设备,例如远程开关机、重启、...

    linux c++ 守护线程,判断程序是否运行,不存在就启动

    在Linux系统中,C++编程时常常需要创建守护线程(daemon thread)来执行特定的任务,比如监控系统状态、定时任务或确保某个服务始终运行。守护线程是一种长期运行的后台进程,它不依赖于终端会话,即使用户注销或者...

    linux 进程线程小程序

    本教程“linux 进程线程小程序”将深入探讨这两个概念,以及如何利用信号量、管道和共享内存进行进程间的通信。 首先,让我们了解什么是进程。在Linux系统中,进程是程序的一次动态执行过程,它具有独立的内存空间...

    linux多线程编程书籍

    在Linux环境下,线程共享同一地址空间,数据交换高效,但同时也需要考虑线程间的同步与通信问题。 2. **线程创建**:在Linux中,可以使用pthread库来创建和管理线程。`pthread_create()`函数用于创建新线程,传入...

    端口进程线程查看工具

    "端口进程线程查看工具"中包含的Tcpview.exe是一个小巧而强大的工具,它能实时显示系统中所有活跃的TCP和UDP连接,包括对应端口、进程ID和进程名称。TCPVIEW.HLP是该工具的帮助文件,提供详细的使用指南和功能解释,...

    Linux多线程下载工具axel

    总之,axel作为一款Linux下的多线程下载工具,其高效、轻量级的特性使其成为Linux用户下载大文件的理想选择。通过简单的安装步骤和丰富的命令行选项,axel能帮助用户充分利用网络资源,提升下载体验。

    Linux2.6内核实现的是NPTL线程模型

    现在,即使是一个多线程程序,使用`ps`命令查看时也只会显示一个进程,这是因为所有属于同一线程组的线程共享相同的PID。这种改变不仅简化了用户的视图,还提高了系统的资源利用率和线程间的通信效率。更重要的是,...

Global site tag (gtag.js) - Google Analytics