`

常用性能调试手段

 
阅读更多

一、CPU负载过高

步骤一:

先利用top查找占用cpu最高的进程pid

 

步骤二:

 top -H -p pid

查看耗时较长、占用CPU资源较多的线程  找出其对应的tid

ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu

 

步骤三:

通过jstack打印堆栈日志 查找对应线程的方法栈信息

需将上步骤找到的tid 转换成十六进制进行查找

jstack pid | grep `printf "%x\n" tid`

 

步骤三:

分析该线程的方法栈信息,找出代码逻辑是否异常。

 

 

二、内存OOM:

内存OOM是大家常见的问题,线上遇到OOM不要慌,别先记着重启,第一步先把内存堆栈打印出来
jmap -dump:live,format=b,file=<filename>

如果线上经常经常出现OOM问题也可以在JVM参数里加上-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<filePath>  在进程OOM时自动dump出内存堆栈

有了内存堆栈就好办了,给大家介绍个工具MAT,是我觉得最好用的内存分析工具http://www.eclipse.org/mat/

三、句柄泄露

句柄泄露,常见查看方法通过lsof -p <pid]> 指令来查看 某个进程打开的句柄情况。

通过ulimit -a 可以查看默认的打开句柄数目限制。

分享到:
评论

相关推荐

    VxWorks常用调试手段

    本文将详细介绍VxWorks中常用的调试手段,包括VxWorks命令、内存操作、异常处理、DMMS(动态内存管理服务)等方面。 1. VxWorks命令: - 内存读写:`d/m`命令用于查看或修改内存中的数据,支持读取和写入8位、16位...

    VxWorks 常用调试手段.ppt

    总的来说,VxWorks提供了丰富的调试手段,包括但不限于内存操作、任务堆栈分析、异常处理、资源管理等,这些工具对于理解和调试复杂的嵌入式系统至关重要。通过熟练掌握这些调试技巧,开发者可以更有效地定位和解决...

    FPGA常用调试技术

    ### FPGA常用调试技术详解 #### 一、查看综合报告 在FPGA开发中,综合报告是定位设计问题的重要工具。综合工具(如Xilinx的XST)在分析代码时,会针对潜在的问题发出警告,帮助设计者识别并解决错误。虽然部分警告...

    asp 调试工具

    ASP(Active Server Pages)是一种由微软开发的服务器端脚本环境,用于生成动态网页或Web应用程序。在开发ASP应用过程中,调试是至关重要的步骤,它帮助...在实际工作中,结合多种调试手段,往往能更好地解决问题。

    javajava调试java调试java调试java调试

    8. **日志与打印调试**:在无法使用IDE或者远程服务器的情况下,日志和打印语句是常用的调试手段。通过在关键位置添加打印语句,输出变量信息,可以帮助理解程序运行过程。 9. **单元测试与集成测试**:编写测试...

    MTK调试(MTK的调试过程解析)

    在MTK平台上,常用的手机调试手段之一是TRACE函数。例如,`kal_prompt_trace`函数是系统提供的,主要用于在catcher中调试错误。当`kal_prompt_trace`不适用时,可以使用`system_print`或`dbg_printf`函数,它们可以...

    Linux常用性能诊断工具

    ### Linux常用性能诊断工具知识点详解 #### 一、性能概述与标准 - **性能基准**:性能基准是指衡量一个高性能系统的参考数据。它为评估系统的实际表现提供了标准。 - **设计阶段解决性能问题**:在设计阶段就考虑...

    常用性能分析和网络分析工具

    在IT领域,性能分析和网络分析工具是诊断和优化系统运行状态的重要手段。这些工具能够帮助我们理解系统资源的使用情况,找出瓶颈,以及解决网络问题。本文将深入探讨一些常用的性能分析和网络分析工具,并重点介绍...

    php代码调试工具

    其次,PHP的错误报告机制是基础的调试手段。通过设置`error_reporting`和`display_errors`配置,可以在运行时获取错误信息。不过,在生产环境中,通常会关闭错误显示,而是将错误日志记录到文件中。 此外,var_dump...

    ubuntu上android真机调试脚本文件和wifi调试apk

    Android真机调试是开发者常用的一种测试手段,它允许开发者在实际设备上运行和测试应用程序,以获取更准确的性能表现和用户体验反馈。Ubuntu作为一款开源、跨平台的操作系统,受到许多开发者特别是Android开发者的...

    Keil实例调试教程1-5章

    单步执行是另一种常用的调试手段,它让我们可以逐行执行代码,并观察每一步执行后程序的状态变化。这对于理解复杂的代码逻辑和调试函数内部的细微问题来说,非常有用。步进调试则更进一步,它可以帮助我们深入到函数...

    php调试程序技术

    对于性能调试,开发者经常使用`microtime()`来测量代码段的执行时间。然而,为了更精确地分析性能瓶颈,`Xdebug`和`APD(Advanced PHP Debugger)`提供了更强大的功能。`Xdebug`可以生成代码覆盖报告和性能分析,而`...

    易语言六种反调试方法源码

    1. **检查调试器的存在**:这是最基础的反调试手段,通常通过检测某些系统调用来判断是否存在调试器。例如,程序可以检查API函数如`IsDebuggerPresent`(Windows API)的返回值。如果检测到调试器,程序可能立即退出...

    软件调试 张英奎编著

    此外,书中还可能探讨调试与性能优化的关系,解释如何通过调试工具分析性能瓶颈,进行代码优化。 总的来说,《软件调试》是一本面向实践的书籍,旨在提升开发者在面对复杂软件问题时的诊断和解决能力。通过学习,...

    webservice调试工具

    总结,Web服务调试工具是Web服务开发不可或缺的辅助手段,通过合理利用这些工具,开发者可以更高效地测试和优化Web服务,确保其稳定、可靠和高性能。选择合适的工具,并熟练掌握其使用,对于提升开发效率和保证服务...

    数据库开发教程 软件调试

    7. **代码审查**:探讨代码审查作为预防性调试手段的价值,以及如何进行有效的代码审查。 通过这两个教程的学习,你将能够熟练地进行数据库开发,并能有效地调试和优化软件,从而提升你的IT专业技能。

    阿布反调试工具插件下载

    在IT安全领域,调试工具是开发者和逆向工程师常用的软件,用于分析程序的运行过程、查找漏洞或理解代码逻辑。然而,随着网络安全的提升,一些软件开发者开始采用反调试技术来保护自己的产品免受非法篡改和分析。...

Global site tag (gtag.js) - Google Analytics