zoukankan      html  css  js  c++  java
  • 如何查看linux服务器内存使用情况

     1. free命令

    free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
    直接输入free命令,显示如下
     
    free命令默认是显示单位kb,可以采用free -m和free -g命令查看,分别表示MB和GB
    另外,free -h会自动选择以适合理解的容量单位显示
     
    Mem:表示物理内存统计,如果机器剩余内存非常小,一般小于总内存的20%,则判断为系统物理内存不够
    Swap: 表示硬盘上交换分区的使用情况,如剩余空间较小,需要留意当前系统内存使用情况及负载,当Swap的used值大于0时,则表示操作系统物理内存不够,已经开始使用硬盘内存了。
    第1行数据11G表示物理内存总量;
    6.5G表示总计分配给缓存(包含buffers与cache)使用的数量,但其中可能部分缓存并未实际使用; 1.3G表示未被分配的内存;
    shared表示共享内存;
    4.0G表示系统分配但未被使用的buffers数量;
    4.7G表示系统分配但未被使用的available数量


    今天被叫着看一个性能问题,发现了一个很有意思的事情,当Linux的物理内存快被耗尽时,系统会把一些进程占用的内存转移swap区,当物理内存被释放一部分时,swap区的一些内存占用又慢慢回到mem区,但是mem区却不再是之前的满负荷状态,而是有一部分free的内存!

    
    

    【17G大小进程压力测试结果】


    【总结】

    1.当物理内存快被耗尽时,系统并没有崩溃,而是拿swap做临时内存,当两者都耗尽,系统OutofMemory
    2.物理内存到达峰值,系统中可能一些不常用的进程内存占用被踢到swap区
    3.当Mem区的资源进行释放时,被挪到swap的内存并不会全部回来的,随着系统或者程序的唤醒才会慢慢回到mem区
    4.Swap是内存不够时磁盘虚拟出来的内存,磁盘主要是I/O级别的操作并不是系统内核级别的操作,处理速度跟Mem区不是一个等级
    ---------------------

    2.哪些应用程序占的内存比较多

    ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less

    执行以上命令可查看各个程序进程内存使用的内存情况,如下图所示,第一列为进程占用的内存百分比,可以看到哪些应用程序占的内存比较多,用于排查问题:

    2.top命令排查内存

    top 命令查看系统的实时负载, 包括进程、CPU负载、内存使用等等;
    直接输入top命令
     
     
    下面表示整体信息

    列表的含义
     

     

    进入top的实时界面后,默认按照CPU的使用率排序,通过“shift+m”按键将进程按照内存使用情况排序,可以查看哪些进程是当前系统中的内存开销“大户”。
    top命令中,按下 f 键,进入选择排序列的界面,这里可以选择要显示的信息列,要按照哪些信息列进行排序等
    参照红框的说明来选择是否显示那些列就行,标*的就是显示

     

     
     
     
     
     
  • 相关阅读:
    网络编程总结
    网络编程进阶---->>> hamc模块 socketserver模块验证合法性 两者进行通信连接
    黏包
    socket概念 套接字
    网络协议
    python之路——网络基础
    模块复习 staticmethod和classmethod的区别
    Dubbo执行流程?
    Dubbo在安全机制方面是如何解决的
    Dubbo中有哪些角色?
  • 原文地址:https://www.cnblogs.com/insane-Mr-Li/p/11208511.html
Copyright © 2011-2022 走看看