精华内容
下载资源
问答
  • java应用占用内存过高排查解决

    千次阅读 2019-09-03 13:33:50
    java应用占用内存过高排查解决 故障:收到服务器报警,内存使用率超过80% 1.查看 使用dstat和top查看内存使用最高的应用 使用dstat 查到内存占用最高的是java应用,使用2253M内存,但是这台服务器跑了好几个java,...

    java应用占用内存过高排查解决

    故障:收到服务器报警,内存使用率超过80%

    1.查看

    使用dstat和top查看内存使用最高的应用
    使用dstat
    image.png
    查到内存占用最高的是java应用,使用2253M内存,但是这台服务器跑了好几个java,具体哪个进程使用top看下资源情况

    使用top
    image.png
    可以看到java应用整体内存使用率超过了70%,其中pid为16494的进程 一个应用占了28.7的内存

    2.定位线程问题

    使用ps查看16494的线程情况
    命令:ps p 16494 -L -o pcpu,pmem,pid,tid,time,tname,cmd
    image.png
    看到16494这个pid的应用产生了很多线程。

    3.查看内存使用的堆栈

    使用jstack查看
    我们挑选了TID=17417的线程进行分析
    在分析前需要将17417这个id转换为16进制,方便查找信息

    [root@localhost ~]# printf "%x\n" 17417
    4409
    

    16进制为4409
    将pid为16494的应用打印到日志中
    [root@localhost ~]# jstack -l 16494 > jstack.log

    4.查看内存堆栈信息

    [root@localhost ~]# vim jstack.log
    在日志信息中查找刚刚转换的4409
    image.png
    可以看到这个线程状态为WAITING
    通过查看日志发现有大量的 waiting on condition
    parking to wait for <0x0000000085dce510>
    存在大量线程等待被唤醒,占用大量内存

    5.代码优化

    将相应日志发送给相应开发,优化线程

    展开全文
  • java应用占用内存和CPU分析起源与动机 起源与动机 在生产中突然发现某java应用程序的cpu或者内存占比较高,除了利用JDK自带的jconsole与jvisualVM以外,可以在linux下用命令实现查看。 #分析步骤 找到目标程序; ...

    java应用占用内存和CPU分析

    起源与动机

    在生产中突然发现某java应用程序的cpu或者内存占比较高,除了利用JDK自带的jconsole与jvisualVM以外,可以在linux下用命令实现查看。
    

    #分析步骤

    1. 找到目标程序;
      1.如果知道应用程序的名称
      1)ps -ef | grep “程序名称”;//查到PID
      2.不清楚应用程序的名称
      2)top //查看所有进程,默认按cpu使用量排序,可通过"shift+>"或者“shirt+<”更换排序方式

    2. 通过第一步确定的pid,查看进程id
      1.排查cpu占比较高
      1)ps -mp pid -o THREAD,tid,time,rss,size,%mem //查看该进程下的所有线程cpu占用情况
      2)printf “%x\n” tid //找到占用cpu最高的线程id,将其转为16进制
      3)jstack pid |grep tid -A 30 //打印线程的堆栈信息
      4)jstack pid > stack.log //或者直接将进程的堆栈信息输出到文件
      2.排查内存占用较高
      1) jmap -histo:live [pid] //然后分析具体的对象数目和占用内存大小,从而定位代码。
      jmap -dump:live,format=b,file=xxx.xxx [pid] //然后利用MAT工具分析是否存在内存泄漏等等。
      2)利用MAT工具去分析dump出来的文件。

    图片: Alt
    参考链接
    [1]: https://blog.csdn.net/li12412414/article/details/81366478
    [2]: https://www.cnblogs.com/edgedance/p/7044753.html
    [3]: https://blog.csdn.net/puhaiyang/article/details/78663942
    [4]: https://blog.csdn.net/jin_kwok/article/details/80326088

    展开全文
  • JAVA项目占用内存问题

    2016-04-07 11:59:31
    一个项目绑定域名后,启动tomcat每隔一分钟内存占用从500MB到1g多,如此循环,将项目放到没有绑定域名的tomcat运行正常,请教大神们知道什么原因吗
  • 最近收到邮件报警,说内存使作率...2、从上图可以看到PID:916的java进程占用内存较大。定位线程问题(通过命令查看PID 为25894 进程的线程情况),命令:# ps p 916 -L -o pcpu,pmem,pid,tid,time,tname,cmd ...

    最近收到邮件报警,说内存使作率达到84%。如下图:

    解决方法:

    A:可能是代码原因导致的问题:

    1、使用命令:top 查看当前进程的状态

    2、从上图可以看到PID:916的java进程占用内存较大。定位线程问题(通过命令查看PID 为25894 进程的线程情况),命令:# ps p 916 -L -o pcpu,pmem,pid,tid,time,tname,cmd

     

     由此可以看到这PID:916的进程产生了很多线程。接下来就可以通过jstack查看内存使用的堆栈。

    3、查看内存使用的堆栈:在这里我们挑选了TID=934的线程进行分析,首先需要将934这个id转换为16进制。需输入如下命令,

     printf "%x\n" 9731

     

    4、将PID为916的堆栈信息打印到jstack.log中,命令:jstack -l 916 > jstack.log

     

    5、

     查看堆栈信息文件,命令:vim jstack.log

       在进行搜索TID为2603的相关信息。如图:

    6、分析

       可以看到这个线程状态为:RUNNABLE。是正在运行状态的

        另外其它的大部分线程状态为:WAITING。通过查看文件分析 看到大量 Java Thread State。

       说明它在等待另一个条件的发生,来把自己唤醒,或者干脆它是调用了 sleep(N)。

       此时线程状态大致为以下几种:

       java.lang.Thread.State: WAITING (parking):一直等那个条件发生;

       java.lang.Thread.State: TIMED_WAITING (parking或sleeping):定时的,那个条件不到来,也将定时唤醒自己。

     

    7.代码优化:将文件发送给开发。优化下线程

    B:可能是其他原因导致的问题:

    1、使用ps命令:ps -ef | grep java | grep -v grep

    查看当前java进程列表

    root       834     1  0 May13 ?        00:30:09 /usr/lib/jvm/java/bin/java -Djava.util.logging.config.file=/data/apache-tomcat-9.0.13/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /data/apache-tomcat-9.0.13/bin/bootstrap.jar:/data/apache-tomcat-9.0.13/bin/tomcat-juli.jar -Dcatalina.base=/data/apache-tomcat-9.0.13 -Dcatalina.home=/data/apache-tomcat-9.0.13 -Djava.io.tmpdir=/data/apache-tomcat-9.0.13/temp org.apache.catalina.startup.Bootstrap start
    root      1294     1  3 May13 ?        14:41:25 /usr/lib/jvm/java/bin/java -Djava.util.logging.config.file=/data/apache-tomcat-9.0.13/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /data/apache-tomcat-9.0.13/bin/bootstrap.jar:/data/apache-tomcat-9.0.13/bin/tomcat-juli.jar -Dcatalina.base=/data/apache-tomcat-9.0.13 -Dcatalina.home=/data/apache-tomcat-9.0.13 -Djava.io.tmpdir=/data/apache-tomcat-9.0.13/temp org.apache.catalina.startup.Bootstrap start
    root      2085     1  0 Mar05 ?        01:57:08 /usr/lib/jvm/java/bin/java -Djava.util.logging.config.file=/data/apache-tomcat-9.0.13/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /data/apache-tomcat-9.0.13/bin/bootstrap.jar:/data/apache-tomcat-9.0.13/bin/tomcat-juli.jar -Dcatalina.base=/data/apache-tomcat-9.0.13 -Dcatalina.home=/data/apache-tomcat-9.0.13 -Djava.io.tmpdir=/data/apache-tomcat-9.0.13/temp org.apache.catalina.startup.Bootstrap start
    root     12808     1  0 Mar08 ?        01:16:03 /usr/lib/jvm/java/bin/java -Djava.util.logging.config.file=/data/apache-tomcat-9.0.13/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /data/apache-tomcat-9.0.13/bin/bootstrap.jar:/data/apache-tomcat-9.0.13/bin/tomcat-juli.jar -Dcatalina.base=/data/apache-tomcat-9.0.13 -Dcatalina.home=/data/apache-tomcat-9.0.13 -Djava.io.tmpdir=/data/apache-tomcat-9.0.13/temp org.apache.catalina.startup.Bootstrap start
    root     19392     1  0 May09 ?        00:36:19 /usr/lib/jvm/java/bin/java -Djava.util.logging.config.file=/data/apache-tomcat-9.0.13/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /data/apache-tomcat-9.0.13/bin/bootstrap.jar:/data/apache-tomcat-9.0.13/bin/tomcat-juli.jar -Dcatalina.base=/data/apache-tomcat-9.0.13 -Dcatalina.home=/data/apache-tomcat-9.0.13 -Djava.io.tmpdir=/data/apache-tomcat-9.0.13/temp org.apache.catalina.startup.Bootstrap start
    root     19838     1  1 May09 ?        05:32:17 /usr/lib/jvm/java/bin/java -Djava.util.logging.config.file=/data/apache-tomcat-9.0.13/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /data/apache-tomcat-9.0.13/bin/bootstrap.jar:/data/apache-tomcat-9.0.13/bin/tomcat-juli.jar -Dcatalina.base=/data/apache-tomcat-9.0.13 -Dcatalina.home=/data/apache-tomcat-9.0.13 -Djava.io.tmpdir=/data/apache-tomcat-9.0.13/temp org.apache.catalina.startup.Bootstrap start
    root     21543     1  0 May27 ?        00:22:03 /usr/lib/jvm/java/bin/java -Djava.util.logging.config.file=/data/apache-tomcat-9.0.13/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /data/apache-tomcat-9.0.13/bin/bootstrap.jar:/data/apache-tomcat-9.0.13/bin/tomcat-juli.jar -Dcatalina.base=/data/apache-tomcat-9.0.13 -Dcatalina.home=/data/apache-tomcat-9.0.13 -Djava.io.tmpdir=/data/apache-tomcat-9.0.13/temp org.apache.catalina.startup.Bootstrap start
    root     22750     1  5 May27 ?        02:28:41 /usr/lib/jvm/java/bin/java -Djava.util.logging.config.file=/data/apache-tomcat-9.0.13/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /data/apache-tomcat-9.0.13/bin/bootstrap.jar:/data/apache-tomcat-9.0.13/bin/tomcat-juli.jar -Dcatalina.base=/data/apache-tomcat-9.0.13 -Dcatalina.home=/data/apache-tomcat-9.0.13 -Djava.io.tmpdir=/data/apache-tomcat-9.0.13/temp org.apache.catalina.startup.Bootstrap start

    由上图所示,可以看到java进程是Tomcat的启动进程,开启多个Tomcat启动进程,并且是同一个端口。由此,可以判断,是因为关闭Tomcat服务时,java进程没有自动关闭,导致内存没有释放。

    2、使用lsof命令:lsof | grep java |grep -v grep

    查看当前进程的运行状态

    java        834    root  cwd       DIR              252,1      4096     393217 /root
    java        834    root  rtd       DIR              252,1      4096          2 /
    java        834    root  txt       REG              252,1      5128     917742 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/bin/java
    java        834    root  mem       REG              252,1    262896     269147 /usr/lib64/libjpeg.so.62.0.0
    java        834    root  mem       REG              252,1     41400     792676 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libjavajpeg.so
    java        834    root  mem       REG              252,1    644072     266782 /usr/lib64/libfreetype.so.6.3.22
    java        834    root  mem       REG              252,1    349032     792667 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libfontmanager.so
    java        834    root  mem       REG              252,1     29072     792665 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libawt_headless.so
    java        834    root  mem       REG              252,1    715224     792664 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libawt.so
    java        834    root  mem       REG              252,1  99174448     269459 /usr/lib/locale/locale-archive
    java        834    root  mem       REG              252,1    111440     656920 /lib64/libresolv-2.12.so
    java        834    root  mem       REG              252,1     27896     655389 /lib64/libnss_dns-2.12.so
    ....................
    
    java       1294    root  cwd       DIR              252,1      4096     393217 /root
    java       1294    root  rtd       DIR              252,1      4096          2 /
    java       1294    root  txt       REG              252,1      5128     917742 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/bin/java
    java       1294    root  mem       REG              252,1  99174448     269459 /usr/lib/locale/locale-archive
    java       1294    root  mem       REG              252,1    262896     269147 /usr/lib64/libjpeg.so.62.0.0
    java       1294    root  mem       REG              252,1     41400     792676 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libjavajpeg.so
    java       1294    root  mem       REG              252,1    644072     266782 /usr/lib64/libfreetype.so.6.3.22
    java       1294    root  mem       REG              252,1    349032     792667 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libfontmanager.so
    java       1294    root  mem       REG              252,1     29072     792665 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libawt_headless.so
    java       1294    root  mem       REG              252,1    715224     792664 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libawt.so
    java       1294    root  mem       REG              252,1    111440     656920 /lib64/libresolv-2.12.so
    java       1294    root  mem       REG              252,1     27896     655389 /lib64/libnss_dns-2.12.so
    java       1294    root  mem       REG              252,1     11920     131997 /var/cache/fontconfig/beeeeb3dfe132a8a0633a017c99ce0c0-le64.cache-3
    java       1294    root  mem       REG              252,1   3203275     792699 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/charsets.jar
    java       1294    root  mem       REG              252,1   3509512     792747 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/resources.jar
    java       1294    root  mem       REG              252,1    477712     655369 /lib64/libfreeblpriv3.so
    java       1294    root  mem       REG              252,1    248720     655363 /lib64/libnspr4.so
    java       1294    root  mem       REG              252,1     18720     655370 /lib64/libplc4.so
    java       1294    root  mem       REG              252,1     14528     655377 /lib64/libplds4.so
    java       1294    root  mem       REG              252,1    191928     266783 /usr/lib64/libnssutil3.so
    java       1294    root  mem       REG              252,1   1337168     268947 /usr/lib64/libnss3.so
    ............
    
    java       2085    root  cwd       DIR             252,17      4096    2621998 /data/apache-tomcat-9.0.13/bin
    java       2085    root  rtd       DIR              252,1      4096          2 /
    java       2085    root  txt       REG              252,1      5128     917742 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/bin/java
    java       2085    root  mem       REG              252,1  99174448     269459 /usr/lib/locale/locale-archive
    java       2085    root  mem       REG              252,1    111440     656920 /lib64/libresolv-2.12.so
    java       2085    root  mem       REG              252,1     27896     655389 /lib64/libnss_dns-2.12.so
    java       2085    root  mem       REG              252,1   3203275     792699 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/charsets.jar
    java       2085    root  mem       REG              252,1   3509512     792747 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/resources.jar
    java       2085    root  mem       REG              252,1    477712     655369 /lib64/libfreeblpriv3.so
    java       2085    root  mem       REG              252,1    248720     655363 /lib64/libnspr4.so
    java       2085    root  mem       REG              252,1     18720     655370 /lib64/libplc4.so
    java       2085    root  mem       REG              252,1     14528     655377 /lib64/libplds4.so
    java       2085    root  mem       REG              252,1    191928     266783 /usr/lib64/libnssutil3.so
    java       2085    root  mem       REG              252,1   1337168     268947 /usr/lib64/libnss3.so
    java       2085    root  mem       REG              252,1    185368     266802 /usr/lib64/libsmime3.so
    java       2085    root  mem       REG              252,1    336472     269139 /usr/lib64/libssl3.so
    java       2085    root  mem       REG              252,1     45720     792689 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libsunec.so
    java       2085    root  mem       REG              252,1     36088     792682 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libmanagement.so
    java       2085    root  mem       REG              252,1     98280     792684 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libnet.so
    java       2085    root  mem       REG              252,1     73416     792685 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libnio.so
    java       2085    root  mem       REG             252,17     34918    2622001 /data/apache-tomcat-9.0.13/bin/bootstrap.jar
    java       2085    root  mem       REG              252,1  73280094     792748 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/rt.jar
    java       2085    root  mem       REG              252,1    298029     792717 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/ext/sunjce_provider.jar
    ............
    
    java      12808    root  cwd       DIR              252,1      4096     393217 /root
    java      12808    root  rtd       DIR              252,1      4096          2 /
    java      12808    root  txt       REG              252,1      5128     917742 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/bin/java
    java      12808    root  mem       REG              252,1  99174448     269459 /usr/lib/locale/locale-archive
    java      12808    root  mem       REG              252,1    111440     656920 /lib64/libresolv-2.12.so
    java      12808    root  mem       REG              252,1     27896     655389 /lib64/libnss_dns-2.12.so
    java      12808    root  mem       REG              252,1   3509512     792747 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/resources.jar
    java      12808    root  mem       REG              252,1    477712     655369 /lib64/libfreeblpriv3.so
    java      12808    root  mem       REG              252,1    248720     655363 /lib64/libnspr4.so
    java      12808    root  mem       REG              252,1     18720     655370 /lib64/libplc4.so
    java      12808    root  mem       REG              252,1   3203275     792699 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/charsets.jar
    java      12808    root  mem       REG              252,1     14528     655377 /lib64/libplds4.so
    java      12808    root  mem       REG              252,1    191928     266783 /usr/lib64/libnssutil3.so
    java      12808    root  mem       REG              252,1   1337168     268947 /usr/lib64/libnss3.so
    java      12808    root  mem       REG              252,1    185368     266802 /usr/lib64/libsmime3.so
    java      12808    root  mem       REG              252,1    336472     269139 /usr/lib64/libssl3.so
    java      12808    root  mem       REG              252,1     45720     792689 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libsunec.so
    java      12808    root  mem       REG              252,1     36088     792682 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libmanagement.so
    java      12808    root  mem       REG              252,1     98280     792684 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libnet.so
    java      12808    root  mem       REG              252,1     73416     792685 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libnio.so
    ..........
    
    java      19392    root  cwd       DIR              252,1      4096     393217 /root
    java      19392    root  rtd       DIR              252,1      4096          2 /
    java      19392    root  txt       REG              252,1      5128     917742 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/bin/java
    java      19392    root  mem       REG              252,1    262896     269147 /usr/lib64/libjpeg.so.62.0.0
    java      19392    root  mem       REG              252,1     41400     792676 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libjavajpeg.so
    java      19392    root  mem       REG              252,1    644072     266782 /usr/lib64/libfreetype.so.6.3.22
    java      19392    root  mem       REG              252,1    349032     792667 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libfontmanager.so
    java      19392    root  mem       REG              252,1     29072     792665 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libawt_headless.so
    java      19392    root  mem       REG              252,1    715224     792664 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libawt.so
    java      19392    root  mem       REG              252,1  99174448     269459 /usr/lib/locale/locale-archive
    java      19392    root  mem       REG              252,1    111440     656920 /lib64/libresolv-2.12.so
    java      19392    root  mem       REG              252,1     27896     655389 /lib64/libnss_dns-2.12.so
    java      19392    root  mem       REG              252,1     11920     131997 /var/cache/fontconfig/beeeeb3dfe132a8a0633a017c99ce0c0-le64.cache-3
    java      19392    root  mem       REG              252,1   3203275     792699 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/charsets.jar
    java      19392    root  mem       REG              252,1   3509512     792747 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/resources.jar
    java      19392    root  mem       REG              252,1    477712     655369 /lib64/libfreeblpriv3.so
    java      19392    root  mem       REG              252,1    248720     655363 /lib64/libnspr4.so
    java      19392    root  mem       REG              252,1     18720     655370 /lib64/libplc4.so
    java      19392    root  mem       REG              252,1     14528     655377 /lib64/libplds4.so
    java      19392    root  mem       REG              252,1    191928     266783 /usr/lib64/libnssutil3.so
    ...........
    
    java      19838    root  cwd       DIR              252,1      4096     393217 /root
    java      19838    root  rtd       DIR              252,1      4096          2 /
    java      19838    root  txt       REG              252,1      5128     917742 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/bin/java
    java      19838    root  mem       REG              252,1  99174448     269459 /usr/lib/locale/locale-archive
    java      19838    root  mem       REG              252,1    262896     269147 /usr/lib64/libjpeg.so.62.0.0
    java      19838    root  mem       REG              252,1     41400     792676 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libjavajpeg.so
    java      19838    root  mem       REG              252,1    644072     266782 /usr/lib64/libfreetype.so.6.3.22
    java      19838    root  mem       REG              252,1    349032     792667 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libfontmanager.so
    java      19838    root  mem       REG              252,1     29072     792665 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libawt_headless.so
    java      19838    root  mem       REG              252,1    715224     792664 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libawt.so
    java      19838    root  mem       REG              252,1     11920     131997 /var/cache/fontconfig/beeeeb3dfe132a8a0633a017c99ce0c0-le64.cache-3
    java      19838    root  mem       REG              252,1    111440     656920 /lib64/libresolv-2.12.so
    java      19838    root  mem       REG              252,1     27896     655389 /lib64/libnss_dns-2.12.so
    java      19838    root  mem       REG              252,1   3203275     792699 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/charsets.jar
    java      19838    root  mem       REG              252,1   3509512     792747 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/resources.jar
    java      19838    root  mem       REG              252,1    477712     655369 /lib64/libfreeblpriv3.so
    java      19838    root  mem       REG              252,1    248720     655363 /lib64/libnspr4.so
    java      19838    root  mem       REG              252,1     18720     655370 /lib64/libplc4.so
    java      19838    root  mem       REG              252,1     14528     655377 /lib64/libplds4.so
    .........
    
    java      21543    root  cwd       DIR              252,1      4096     393217 /root
    java      21543    root  rtd       DIR              252,1      4096          2 /
    java      21543    root  txt       REG              252,1      5128     917742 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/bin/java
    java      21543    root  mem       REG              252,1    262896     269147 /usr/lib64/libjpeg.so.62.0.0
    java      21543    root  mem       REG              252,1     41400     792676 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libjavajpeg.so
    java      21543    root  mem       REG              252,1    644072     266782 /usr/lib64/libfreetype.so.6.3.22
    java      21543    root  mem       REG              252,1    349032     792667 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libfontmanager.so
    java      21543    root  mem       REG              252,1     29072     792665 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libawt_headless.so
    java      21543    root  mem       REG              252,1    715224     792664 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libawt.so
    java      21543    root  mem       REG              252,1    111440     656920 /lib64/libresolv-2.12.so
    java      21543    root  mem       REG              252,1     27896     655389 /lib64/libnss_dns-2.12.so
    java      21543    root  mem       REG              252,1   3509512     792747 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/resources.jar
    java      21543    root  mem       REG              252,1   3203275     792699 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/charsets.jar
    java      21543    root  mem       REG              252,1     11920     131997 /var/cache/fontconfig/beeeeb3dfe132a8a0633a017c99ce0c0-le64.cache-3
    java      21543    root  mem       REG              252,1    477712     655369 /lib64/libfreeblpriv3.so
    java      21543    root  mem       REG              252,1    248720     655363 /lib64/libnspr4.so
    java      21543    root  mem       REG              252,1     18720     655370 /lib64/libplc4.so
    java      21543    root  mem       REG              252,1     14528     655377 /lib64/libplds4.so
    java      21543    root  mem       REG              252,1    191928     266783 /usr/lib64/libnssutil3.so
    ........
    
    java      22750    root  cwd       DIR              252,1      4096     393217 /root
    java      22750    root  rtd       DIR              252,1      4096          2 /
    java      22750    root  txt       REG              252,1      5128     917742 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/bin/java
    java      22750    root  mem       REG              252,1    262896     269147 /usr/lib64/libjpeg.so.62.0.0
    java      22750    root  mem       REG              252,1     41400     792676 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libjavajpeg.so
    java      22750    root  mem       REG              252,1    644072     266782 /usr/lib64/libfreetype.so.6.3.22
    java      22750    root  mem       REG              252,1    349032     792667 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libfontmanager.so
    java      22750    root  mem       REG              252,1     29072     792665 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libawt_headless.so
    java      22750    root  mem       REG              252,1    715224     792664 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libawt.so
    java      22750    root  mem       REG              252,1    111440     656920 /lib64/libresolv-2.12.so
    java      22750    root  mem       REG              252,1     27896     655389 /lib64/libnss_dns-2.12.so
    java      22750    root  mem       REG              252,1     11920     131997 /var/cache/fontconfig/beeeeb3dfe132a8a0633a017c99ce0c0-le64.cache-3
    java      22750    root  mem       REG              252,1   3203275     792699 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/charsets.jar
    java      22750    root  mem       REG              252,1   3509512     792747 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/resources.jar
    java      22750    root  mem       REG              252,1    477712     655369 /lib64/libfreeblpriv3.so
    java      22750    root  mem       REG              252,1    248720     655363 /lib64/libnspr4.so
    ........
    
    java      29458    root  cwd       DIR              252,1      4096     393217 /root
    java      29458    root  rtd       DIR              252,1      4096          2 /
    java      29458    root  txt       REG              252,1      5128     917742 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/bin/java
    java      29458    root  mem       REG              252,1  99174448     269459 /usr/lib/locale/locale-archive
    java      29458    root  mem       REG              252,1    262896     269147 /usr/lib64/libjpeg.so.62.0.0
    java      29458    root  mem       REG              252,1     41400     792676 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libjavajpeg.so
    java      29458    root  mem       REG              252,1    644072     266782 /usr/lib64/libfreetype.so.6.3.22
    java      29458    root  mem       REG              252,1    349032     792667 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libfontmanager.so
    java      29458    root  mem       REG              252,1     29072     792665 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libawt_headless.so
    java      29458    root  mem       REG              252,1    715224     792664 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el6_10.x86_64/jre/lib/amd64/libawt.so
    java      29458    root  mem       REG              252,1     11920     131997 /var/cache/fontconfig/beeeeb3dfe132a8a0633a017c99ce0c0-le64.cache-3
    ............
    java      29458    root  235u     IPv4           34489969       0t0        TCP localhost:57037->localhost:mysql (ESTABLISHED)
    java      29458    root  236u     IPv4           34489971       0t0        TCP localhost:57036->localhost:mysql (ESTABLISHED)
    java      29458    root  237u     IPv4           34489970       0t0        TCP localhost:57040->localhost:mysql (ESTABLISHED)
    java      29458    root  238u     IPv4           34489982       0t0        TCP localhost:57042->localhost:mysql (ESTABLISHED)
    java      29458    root  239u     IPv4           34489983       0t0        TCP localhost:57043->localhost:mysql (ESTABLISHED)
    java      29458    root  240u     IPv4           34489984       0t0        TCP localhost:57046->localhost:mysql (ESTABLISHED)

    通过上图所示:正常运行的Tomcat状态应为PID:29458的java进程

    3、杀掉其他的java的进程

    kill -9 PID

    4、然后查看主机监控,果然内存使用率下降,网站运行正常

     

    转载于:https://www.cnblogs.com/eeexu123/p/10913389.html

    展开全文
  • 查询各进程占用内存情况:ps aux | awk '{print $6/1024/1024 " GB\t\t" $2,$11}' |grep java|grep -v grep | sort -n 解决方法: A:可能是代码原因导致的问题: 1、使用命令:top查看当前进程的状态 2、从...

     内存使用率过高

    查询各进程占用内存情况:ps aux | awk '{print $6/1024/1024 " GB\t\t" $2,$11}' |grep java|grep -v grep | sort -n

    解决方法:

    A:可能是代码原因导致的问题:

    1、使用命令:top 查看当前进程的状态

    2、从上图可以看到PID:18121的java进程占用内存较大。定位线程问题(通过命令查看PID 为25894 进程的线程情况),命令:# ps p 18121 -L -o pcpu,pmem,pid,tid,time,tname,cmd

    由此可以看到这PID:18121的进程产生了很多线程。接下来就可以通过jstack查看内存使用的堆栈。

    3、查看内存使用的堆栈:在这里我们挑选了TID=18121的线程进行分析,首先需要将18121这个id转换为16进制。需输入如下命令,

    4、将PID为916的堆栈信息打印到jstack.log中,命令:jstack -l 18121 > jstack.log

    5、分析

       可以看到这个线程状态为:RUNNABLE。是正在运行状态的

        另外其它的大部分线程状态为:WAITING。通过查看文件分析 看到大量 Java Thread State。

       说明它在等待另一个条件的发生,来把自己唤醒,或者干脆它是调用了 sleep(N)。

       此时线程状态大致为以下几种:

       java.lang.Thread.State: WAITING (parking):一直等那个条件发生;

       java.lang.Thread.State: TIMED_WAITING (parking或sleeping):定时的,那个条件不到来,也将定时唤醒自己。

     查看堆栈信息文件,命令:vim jstack.log

     

    6.代码优化:将文件发送给开发。优化下线程

    B:可能是其他原因导致的问题:

    1、使用ps命令:ps -ef | grep java | grep -v grep

    查看当前java进程列表

    可以判断,是因为关闭java服务时,java进程没有自动关闭,导致内存没有释放。

    2、使用lsof命令:lsof | grep java |grep -v grep

    查看当前进程的运行状态

    输出结果筛选ESTABLISHED可以看到正常运行的java状态应为PID:4724的java进程

    3、杀掉其他的java的进程

    kill -9 PID

    然后查看主机监控,果然内存使用率下降,网站运行正常

     

    展开全文
  • 占用内存总大小,请注意,此处为虚拟内存大小,占用的物理内存大小能够通过top查看 使用jmap查看Java进程对象使用情况 命令格式:jmap -histo 进程id 第一列,序号。 第二列,对象实例数量 第三列,对象实例...
  • 最近在学习java对象内存布局方面的一些知识,主要是想知道一个java对象到底占用多少内存空间,以及java对象在内存中到底是什么样子的。c/c++中的sizeof运算符能够方便地告诉我们一个变量占用内存空间,但是在java...
  • 一、如果想看运行时某个java对象占用JVM内存大小,可以先将对象转换成字节类型,然后计算: List&lt;BizGroupRelatedEventInfo&gt; bizGroupRelatedEventInfos = bizEventVersionMapper....
  • Linux服务器java进程占用系统内存

    千次阅读 2019-01-04 09:26:49
    如图可以看到java的进程内存使用率较高,java进程的内存使用率达到了70%+ 2.定位线程问题(通过命令查看9718进程的线程情况),命令:ps p 9718 -L -o pcpu,pmem,pid,tid,time,tname,cmd  由此可以看到这PID...
  • Java打印对象的内存地址的示例代码 public static void main(String[] args) { String a = "11"; String b = new String("11"); System.out.println("a=b:" + a == b); System.out.println("a的内...
  • 当使用java开发应用程序发生内存泄露的时候,经常会需要dump内存,然后使用内存分析工具,比如Eclipse Memory Analyzer(一般称作MAT)工具。 本文将介绍如何在eclipse中dump 内存。 提前准备:  一、下载...
  • 使用top命令查看系统资源的使用情况,命令:top如图可以看到java的进程内存使用率较高,java进程的内存使用率达到了70%+2.定位线程问题(通过命令查看9718进程的线程情况),命令:ps p 9718 -L -o pcpu,pmem,pid,...
  • java进程占用系统内存高,排查方法

    千次阅读 2019-04-09 17:02:27
    1、top 查看具体是哪个进程吃内存较多,接下来我们以排查第一个为例 2、定位线程问题(通过命令查看9534进程的线程情况),命令:ps p 9534 -L -o pcpu,pmem,pid,tid,time,tname,cmd 由此可以看到这PID:9534...
  • Java计算一个对象占用内存的大小

    千次阅读 2015-05-27 17:13:02
    Java计算一个对象占用内存的大小
  • java输出查看JVM占用内存:

    千次阅读 2019-07-23 18:40:46
    //当前JVM占用内存总数(M) double total = (Runtime.getRuntime().totalMemory()) / (1024.0 * 1024); //JVM最大可用内存总数(M) double max = (Runtime.getRuntime().maxMemory()) / (1024.0 * 1024); ...
  • 在使用了netty的系统中,有时会出现内存泄露的问题,我们就需要去监控这个堆外内存占用,以排查是否是堆外泄露,下面的代码就是查看堆外内存的。可以写个定时任务,持续调用doReport方法来获取堆外内存。 netty...
  • 如何查看Java对象占用JVM内存大小

    千次阅读 2018-01-09 17:17:22
    转换成字节类型 之前遇到要查看缓存大小,找了很多方法都不是很合适,从同事那里得知一个很好、很准确的方法。现分享如下: private List < Map ...//打印占用字节数。
  • java获取系统CPU、内存占用

    千次阅读 2018-10-19 09:57:57
    说明:获取的数据是操作系统整体的资源占用情况,不是当前 java进程占用的资源 1. 获取系统CPU占用情况  import java.lang.management.ManagementFactory; import com.sun.management.OperatingSystemMXBean; ...
  • 如何准确定位Java进程中哪些线程资源占用内存高的问题第一步 通过top查看具体是哪个进程占用内存较多第二步 定位具体进程中哪些线程占用内存第三步 打印进程的堆栈信息到log中 第一步 通过top查看具体是哪个进程占用...
  • 专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。...执行 jps -l 命令,定位高内存占用的 PID # jps -l 1174 org.elasticsearch.bootstrap.Elasticsearc...
  • 为什么设置-Xmx4g但是java进程内存占用达到8g?

    千次阅读 热门讨论 2021-01-28 16:05:06
    不知道大家在开发过程中有没有遇到过类似的问题,明明通过JVM参数-Xmx4g设置了最大堆内存大小为4g,但是程序运行一段时间后发现占用内存明显超过了8g,却并没有出现内存溢出等问题,那是什么东西占用了额外的内存...
  • java工程消费的内容延迟严重,发现负责消费的dispatcher 进程阻塞,且占用的CPU%很高。 开始按照https://www.cnblogs.com/paul8339/p/7464206.html文中提到的方法排查。 一、追查 重点: 如果java进程在docker下...
  • 查看java程序运行的峰值内存消耗(含虚拟机)和CPU消耗(ms)的方法: 用jdk自带的工具,jconsole.exe; 令行输入jconsole.exe; 就会出现一个window; 根据进程号选择要监控的虚拟机; 里面有内存、...
  • 如何获取对象占用多大内存。读了一个11M的文本,分词用HashMap存起来,打印内存居然少了400M,想看看内存被谁占用
  • 在strut2 的action中 可以定义几个变量,也可以吧字段放到entity中 例如: 1. 在entity中定义变量, ...[b]最主要是想知道,如何写程序查看占用内存的大小[/b][color=red][/color][size=x-small][/size].
  • 引言:在Java应用中,对于内存占用是一个让人头疼的问题,那在我们怀疑内存占用出现问题时,如何找到我们想要的答案,比如哪个占用了最多的内存,本文讲尝试给出一个思路。
  • 这里要介绍的是lucene提供的专门用于计算堆内存占用大小的工具类:RamUsageEstimator maven坐标 <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</...
  • 1192352 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 9 root 20 0 2557160 288976 15812 S 98.0 14.1 0:42.60 java 可以看到,有一个Java程序此时CPU占用量达到了98.8%,此时我们可以复制该...
  • java中获取对象所占用内存大小

    千次阅读 2016-11-10 11:01:10
    java中快速获取某个对象所占用内存大小: 用lucene核心包中的静态方法: org.apache.lucene.util.RamUsageEstimator.sizeof(Object object); api 链接地址:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,619
精华内容 29,847
关键字:

java打印占用内存

java 订阅