zoukankan      html  css  js  c++  java
  • tomcat占用cpu比较多

    在Linux中当Tomcat启动后,我们只是去查看应用是否能够正常访问来判断Tomcat启动是否正常。一般情况下这样看是没有问题的,但是有时候我们会发现当Tomcat使用了一段时间后,开始出现CPU或者内存飙升。此时,查看Tomcat日志也许无法看到有效信息,因此有必要了解一下Linux和jdk给我们提供的相关工具。

    1、查看内存和CPU使用较高的进程信息

    输入top,我们可以看到下面的信息

    2、如果我们想查看PID为3583的进程信息,则可以执行

    top -H -p 3582

    说明:3582为进程ID,一个进程可以有多个线程。这个基础知识科普给刚入门的小伙伴。

    此时,我们可以看到进程3582下面的相关线程信息。占用资源较多的线程会排在前几个。OK,截图如下。

     

    3、既然都找到线程消耗信息了,但是我们还没找到原因。别着急,下面我们来查看一下某个线程的堆栈信息,

    如PID为3590的线程。至于说为什么要看堆栈信息,这个就不用我多说了。如果不清楚的,估计也接触不到这个东东了。OK,回归正题。要查看某个java线程的堆栈信息,我们当然得使用jdk自带的jstack工具。

    使用方法:

    jstack [进程] | grep -A 10 [线程的16进制]

    -A 10表示查找到所在行的后10行。3590用计算器转换为16进制e06,注意字母是小写。

    OK,下面我们执行下面的命令。

    jstack 3582|grep -A 10 e06

    执行完毕,我们会看到如图所示的堆栈信息,此时我们就能结合相关线程提示的信息来做自己的判断了。




    ---------------------
    作者:洛枫偃月
    来源:CSDN
    原文:https://blog.csdn.net/zgs_shmily/article/details/51019933
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    RSA 与 DSA
    atlassian
    Cygwin
    windows下编写的Shell脚本在Linux下运行错误的解决方法
    NSKeyValueObserving(KVO)
    UIBezierPath 的使用介绍
    Objective
    Objective-C 内存管理原则
    Mac OSX 快捷键&命令行总览
    浅析Objective-C字面量
  • 原文地址:https://www.cnblogs.com/python-cat/p/9841758.html
Copyright © 2011-2022 走看看