• 【Linux】查看系统内存占用


    1.查看内存情况

    • free -h

    解释下基本概念

    Mem 内存的使用信息
    Swap 交换空间的使用信息
    total 系统总的可用物理内存大小
    used 已被使用的物理内存大小
    free 还有多少物理内存可用
    shared 被共享使用的物理内存大小
    buff/cache 被 buffer 和 cache 使用的物理内存大小
    available 还可以被使用的物理内存大小(即系统可用内存约等于free+shared+buff/cache)

    2.top查看内存占用,shift+m按MEN占用降序

    top详解请参考:https://www.cnblogs.com/zhoug2020/p/6336453.html

     可以看出PID为45685的进程占用内存较多

     3.查看45685进程的线程情况

    • ps p 45685 -L -o pcpu,pmem,pid,tid,time,tname,cmd

     PID:45685的进程产生了很多线程。

    4.使用ps命令:

    • ps -ef | grep java | grep -v grep

    查看当前java进程列表

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

    5.使用lsof命令:

    • lsof | grep java |grep -v grep >> 1.log

    查看当前进程的运行状态

    • vi 1.log 

    按:输入/ESTABLISHED,找到正常运行的进程

    发现307100的进程运行正常

     

    kill掉其余的进程

    • kill -9 PID

     

     原文链接:https://www.cnblogs.com/eeexu123/p/10913389.html

    最后定位到是tomcat运行的jenkins的问题,具体问题正在排查。

    排查的过程中起初以为是tomcat内存优化的问题,特此找到tomcat正确的jvm内存配置方案。

    原文链接: https://blog.csdn.net/acwa123/article/details/72626921

    Tomcat并不建议直接在catalina.sh里配置变量,而是写在与catalina同级目录(bin目录)下的setenv.sh里。

    所以如果我们想要修改jvm的内存配置,那么我们就需要修改setenv.sh文件(如果没有就新建一个setenv.sh),写入(大小根据自己情况修改):

    export CATALINA_OPTS="$CATALINA_OPTS -Xms1600m"
    export CATALINA_OPTS="$CATALINA_OPTS -Xmx1600m"
    export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=256m"


  • 相关阅读:
    listview 选择后高亮显示
    高德坐标转百度坐标并导航
    android scrollview listview显示不全
    java.lang.UnsatisfiedLinkError: Couldn't load vi_voslib from loader dalvik.system.PathClassLoader
    JAVA Map 和 List 排序方法
    Butter Knife 使用方法
    Volley 结合GSON或FastJson用法
    android-menudrawer 和SlidingMenu 用法
    ueditor 正在读取目录及网络链接错误
    【449】backup get weekly tweets
  • 原文地址:https://www.cnblogs.com/jxd283465/p/11506450.html
Copyright © 2020-2023  润新知