• 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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    捉BUG记(To Catch a Bug)
    发布一个简单的knockout-easyui绑定库
    笔记:Hyper-V上Centos 6.5分辨率调整问题解决笔记
    Asp.net中HttpRequest.Params与Reques.Item之异同
    Oracle必须死之奇怪的ORA-06502错误
    centos7 搭建bitcoin/usdt 节点服务
    webpack安装配置
    centos7 rsyslog
    nginx+fpm 开机自启
    centos7下 PHP添加pdo_myql扩展
  • 原文地址:https://www.cnblogs.com/python-cat/p/9841758.html
Copyright © 2020-2023  润新知