`

(转)简单的 Linux下的CPU性能瓶颈分析

 
阅读更多
http://www.taobaotest.com/blogs/2508



Linux下的CPU性能瓶颈分析
以夕 发表于:2013-09-29 浏览:2455次 评论:0次 所属分类: 性能测试
问题描述:
        在对notify执行性能测试时发现cpu负载突然飙高,cpu利用率高达95%。这时候就要排查是哪些线程消耗了cpu,并从代码层找到占用cpu的“罪魁祸首”。

步骤:
    1.     先用ps+grep找到被测试的进程pid。
    比如:ps –ef|grep notify,得到pid为29128。

    2.     执行top -H -p <pid>,可显示出该进程下的所有线程。找到占用cpu最多的子线程pid,并将其转换为16进制。
    比如:top -H -p 29128,看到notify的所有子线程。其中,%CPU 比重最大的子线程pid为879,转换成16进制是36f。

    3.     执行jstack <pid>|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)
        <notify相关堆栈信息隐藏>
      ……

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

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

相关推荐

    Linux之性能分析工具Intel(R) VTune.doc

    英特尔Intel VTune Amplifier XE 是最新的性能分析器,构建于... VTune Amplifier用在Intel的CPU上,可以用来分析装有Intel CPU的Linux和windows系统,我们一般针对Linux进行性能分析,下面介绍一下安装和使用方法。

    linux 系统性能相关1.rar

     Linux Virtual Server (LVS)之ksoftirqd进程耗尽单核100%si处理软中断导致性能瓶颈; Linux 线程库性能测试与分析; 网卡软中断不能分发到CPU多核 问题的说明; Linux的实时性能测试.pdf  多核处理器上,怎样将...

    linux性能分析及优

    linux性能分析及调优__cpu 性能瓶颈调优可调性能参数 、内存性能瓶颈可调性能参数(操作系统设置swap的目的、在写程序时、如何使自己的内存不被换出swap,常驻物理内存)、磁盘I/O可调性能参数(如何判断磁盘IO瓶颈,...

    Linux操作系统性能监测:磁盘IO篇

    磁盘通常是计算机最慢的子系统,也是最容易出现性能瓶颈的地方,因为磁盘离 CPU 距离最远而且 CPU 访问磁盘要涉及到机械操作,比如转轴、寻轨等。访问硬盘和访问内存之间的速度差别是以数量级来计算的,就像1天和1...

    Linux系统性能监控

    经常会发现由于各种原因引起的系统瓶颈,只有掌握了行之有效的分析工具和方法,我们才能针对性的分析问题,为了使大家能清晰地从不同角度进行系统性能分析,本文从CPU、内存、IO、网络四个方面详细讲解有关linux系统...

    linux性能分析不建议下载.rar

    分析系统瓶颈:top. 进入交互模式后: - 输入M,进程列表按内存使用大小降序排序,便于我们观察最大内存使用者使用有问题(检测内存泄漏问题); - 输入P,进程列表按CPU使用大小降序排序,便于我们观察最耗CPU资源的...

    linux优化笔记

    在linux系统下只有运行SMP内核才能支持超线程,但是安装的CPu数量越多,从超线程获得的性能提升越少。 另外linux内核会将多核的处理器当做多个单独的CPU来识别,例如,两个4核的CPU会被当成8个单个CPU,从性能角度讲...

    Linux系统20个系统监控工具

    需要监控Linux服务器系统性能吗?尝试下面这些系统内置或附件的工具吧。大多数Linux发行版本都装备了大量的监控工具。这些工具提供了能用作取得相关信息和系统活动的量度指标。你能使用这些工具发现造成性能问题可能...

    Linux系统的性能测试与性能分析

    Linux系统的性能测试与性能分析1性能测试简介性能测试的过程就是找到系统瓶颈的过程。性能测试(包括分析和调优)的过程就是在操作系统的各个子系统之间取得平衡的过程。  RevisionHistory Version ...

    Linux 性能监测:IO

    磁盘通常是计算机最慢的子系统,也是最容易出现性能瓶颈的地方,因为磁盘离 CPU 距离最远而且 CPU 访问磁盘要涉及到机械操作,比如转轴、寻轨等。访问硬盘和访问内存之间的速度差别是以数量级来计算的,就像1天和1...

    Linux系统的性能评估和调优指南

    对服务器来说主要的角色是应用服务器或数据库服务器,CPU作为关键资源经常成为性能瓶颈的根源。CPU使用率高并不总是意味着CPU工作繁忙,它有可能是正在等待其他子系统。在进行性能分析时,将所有子系统当做一个整体...

    每个Linux管理员都应该知道的20个系统监视工具

    需要监控Linux服务器的性能?试试这些内置的命令和一些附加的工具吧。大多数Linux发行版都集成了一些监视工具。这些工具可以获取有关系统活动的信息的详细指标。通过这些工具,你可以发现产生系统性能问题可能存在...

    linux性能调试之vmstat分析

    1)找出系统性能瓶颈(包括硬件瓶颈和软件瓶颈); 2)提供性能优化的方案(升级硬件?改进系统系统结构?); 3)达到合理的硬件和软件配置; 4)使系统资源使用达到最大的平衡。(一般情况下系统良好运行的时候...

    11如何迅速分析出系统CPU的瓶颈在哪里?1

    第二个比较容易想到的,应该是平均负载(Load Average),也就是系统的平均活跃进 第三个,也是在专栏学习前你估计不太会注意到的,进程上下文切换,包括:

    Linux 性能优化思路

    性能优化 性能优化的核心是找出系统的瓶颈点,问题找到了,优化的工作也就完成了大半; 这里介绍的性能优化主要从两个层面来介绍:系统层面和程序层面。...分析内存瓶颈 查看内存是否存在瓶颈,使用top指令

    Linux 内核的文件预读

    Linux 文件预读 算法磁盘I/O性能的发展远远滞后于CPU和内存,因而成为现 代计算机系统的一个主要瓶颈。预读可以有效的减少磁盘的寻道次数和应用程序的I/O等 待时间,是改进磁盘读I/O性能的重要优化手段之一。本文...

    开源的Android性能测试工具APT

    APT Android Performance Testing Tools 开源项目 适用于开发自测和定位性能瓶颈 帮助测试人员完成性能基准测试 竞品测试 APT提供了CPU利用率实时曲线图 多维度内存实时曲线图 方便竞品对比测试和定位内存泄露问题...

Global site tag (gtag.js) - Google Analytics