• Linux系统中内存问题排查思路与解决方法


    内存是为提高效率而生,实际分析问题的时候,内存出现问题可能不只是影响性能,而是影响服务或者引起其他问题。

    一、宿主机层面:

    查看内存使用

    [root@sh-dev-backup-4-2 ~]# free -h
                  total        used        free      shared  buff/cache   available
    Mem:            62G        2.4G        354M        208M         59G         59G
    Swap:          8.0G          0B        8.0G
    

    详解:

    1、total:总的物理内存

    2、used:系统使用的内存,包括buff+cache。并非系统真正使用的内存。系统真正使用的内存=used-buff/cache

    3、free:空闲的内存,系统未使用的内存,并不是系统启动应用程序可以真正使用的内存。

    4、shared:共享内存

    5、buff/cache:磁盘缓存的大小

    6、available:在旧版free中,没有这个选项。这个选项指的是,系统启动程序时可以利用的内存,当这个选项很小或者不够启动程序所需的内存,会提示系统内存不足,无法启动,此时就需要处理问题,是物理内存真的不足,还是清理系统缓存。

    Cached主要负责缓存文件使用, 日志文件过大,索引太多(redis,es,log处理等)造成cached区内存增大把内存占用完 ,Linux服务器会自动释放内存,保障系统运行,但只会释放够用的内存,而不会去释放更多的内存。

    查看当前节点占用内存高的前3个进程:

    ps aux |awk '{if($4>0.1){{printf "PID: "$2" Memory: "$3"% --> "}for(i=11;i<=NF;i++)if(i==NF)printf $i"
    ";else printf $i}}' |sort -k4 -nr |head -3
    
  • 相关阅读:
    mysql 百万级查询优化
    hibernate N+1
    sql 技巧
    redis做成windows服务
    jsonp 跨域
    maven+spring-data-jpa环境搭建
    通过浏览器地址进行 post get 请求
    spring-data-jpa 新增 修改 删除 查询 分页
    mybatis+springMVC
    java 基于 bootstrap_datagrid 分页
  • 原文地址:https://www.cnblogs.com/liuyupen/p/13905976.html
Copyright © 2020-2023  润新知