美文网首页程序员
linux下java进程占用内存过高(排查)

linux下java进程占用内存过高(排查)

作者: 自由图书 | 来源:发表于2018-01-29 21:59 被阅读0次
      最近发现一个很奇怪的现象,白天系统业务压力较大的时候服务器cpu,内存使用率正常。晚上业务量小,没人使用系统
    

    的时候cpu正常,内存暴涨的70%以上。

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
    内容解释:
    PID:进程的ID
    USER:进程所有者
    PR:进程的优先级别,越小越优先被执行
    NInice:值
    VIRT:进程占用的虚拟内存
    RES:进程占用的物理内存
    SHR:进程使用的共享内存
    S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
    %CPU:进程占用CPU的使用率
    %MEM:进程使用的物理内存和总内存的百分比
    TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
    COMMAND:进程启动命令名称

    常用的命令:
    P:按%CPU使用率排行
    T:按MITE+排行
    M:按%MEM排行

    1>使用top命令查看 如图显示:


    1517233070(1).jpg

    2>使用命令 printf "%x\n" pid 可以对应进程id的16进制id 如图:


    2.png

    3>使用命令jstack pid|grep 16进制id -A 90 可以查看到具体的代码块:


    1517233855(1).jpg

    这样根据异常信息可以定位 具体问题 ,应该是这些thread正常消耗内存


    3.png

    唉。。。苦逼的解决中。。。后续更新解决方案。

    相关文章

      网友评论

        本文标题:linux下java进程占用内存过高(排查)

        本文链接:https://www.haomeiwen.com/subject/vyifzxtx.html