zoukankan      html  css  js  c++  java
  • Linux 查看内存使用情况

    1 . top  : 用于实时显示 process 的动态

      PID:进程的ID  

      USER:进程所有

           PR:进程的优先级别,越小越优先被执

           VIRT:进程占用的虚拟内

           RES:进程占用的物理内

           SHR:进程使用的共享内

           S:进程的状态,S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负

           %CPU:进程占用CPU的使用

           %MEM:进程使用的物理内存和总内存的百分

           TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值

           COMMAND:进程启动命令名称

    2.free:查看系统内存使用情况

    total:总计物理内存的大小

    used:已使用多大

    free:可用有多少

    shared:多个进程共享的内存总额

    buff/cached:磁盘缓存的大小

    free命令主要用于显示内存数量,如下图中内容所表示

    free -h 命令

    free -m 命令

    3.cat /proc/meminfo: 查看RAM使用情况最简单的方法是通过/proc/meminfo

    这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / top)等的组合显示。

    /proc/meminfo列出了所有你想了解的内存的使用情况。

    进程的内存使用信息也可以通过/proc/<pid>/statm 和 /proc/<pid>/status 来查看。

    Linux服务器CPU100%问题

    背景:用户反应我们系统卡顿,开始排查步骤:

    1、查消耗cpu最高的进程PID。top -c 显示进程运行信息列表,按下大P,进程按照cpu使用率排序,发现第一位使用率172%,记下PID:6846。

    2、根据PID查出消耗cpu最高的线程号。top -Hp 6846,显示一个进程的线程运行信息列表。按下大P,进程按照cpu使用率排序,可以看到前面四个的cpu都是80+%,记下四个线程号,分别是:6849、6850、6851、6852。

    3、把上面四个线程的十进制数转成十六进制(printf %x 6849、printf %x 6850、printf %x 6851、printf %x 6852),分别是:

    1ac1、1ac2、1ac31、1ac4。

    4、根据线程号查出对应的java线程,进行处理。jstack -l 6846 > ./6846.stack,然后执行grep命令,看线程1ac1做了什么

    由上图可见,cpu使用率高的线程都在GC task,JVM的GC线程一直在占用大量CPU,然后再搜索一下 项目名

    cat 6846.stack | grep 'rongke' -C 20 | less

    可以看到,这个是项目里面把用户的短信保存到 mongoDB里的方法,去排查项目代码,看到保存短信的时候,开启了一个线程池,队列给了40960个,有点大,这应该是当时给用户下发短信时,临时设置的后面加了个0,发完之后忘记改过来了,但是一般队列是不会满的。应该是并发较大,创建了很多线程,再加上GC的线程也很多,导致的cpu使用率100%了。

    解决方案:

    1、可以先把队列改为4096个观察下(我没试)。我是先把保存短信的方法注释掉,因为此数据可有可无。

    2、接入Ribbat MQ,把每一个短信放进mq里,另外起一个监听器去监听该mq,获取数据存到MongoDB里。
     

    转载:https://blog.csdn.net/qq_33101675/article/details/90374105

  • 相关阅读:
    神经网络损失函数公式解读
    centos 安装python PIL模块
    Centos6.8 安装dlib库时出错【升级gcc 到4.9.0以上】
    python DBUtils 线程池 连接 Postgresql(多线程公用线程池,DB-API : psycopg2)
    Postgresql 查看锁的过程
    Python yield 函数功能
    Centos6.8 安装spark-2.3.1 以及 scala-2.12.2
    Oracle---常用SQL语法和数据对象
    Oracle---number数据类型
    java框架篇---hibernate之连接池
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452935.html
Copyright © 2011-2022 走看看