zoukankan      html  css  js  c++  java
  • Linux内存 free 详解

    在Linux下,使用top命令看到内存占用情况:
     
    Mem:  4146788k total, 3825536k used, 321252k free, 213488k buffers
    Swap: 2650684k total, 80k used, 2650604k free, 3006404k cached
     
    这里的结果显示使用了3.8G的used,占用率达到90%。看看free的结果你还可以对比一下: 
     
    $ free -m
              total    used      free     shared    buffers    cached
    Mem: 4049    3784    265 0     208       2939
    -/+ buffers/cache: 636 3413
    Swap: 2588 0 2588
     
    虽然MEM显示了3.7G左右的used,但是(-/+ buffers/cache)减去buffers和cache的结果可以看到,当前进程实际占用内存是636M,而可用空闲(free)内存为3.4G。
     
    可以这么理解:在linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得数据会比较快。
     
    如上面的例子:使用了4G的内存,3.7G被占用,但是buuffer和cached部分作为缓存,可以使用命中率的方式提高使用效率,而且这部分缓存是根据指令随时可以释放的,我们可以认为这部分内存没有实际被使用,也可以认为它是空闲的。
     
    因此查看目前进程正在实际被使用的内存,是used-(buffers+cache),也可以认为如果swap没有大量使用,mem还是够用的,只有mem被当前进程实际占用完(没有了buffers和cache),才会使用到swap的。
  • 相关阅读:
    Python实战之SocketServer模块
    CentOS出错You don't have permission to access on this server
    系统瓶颈分析
    loadrunner支持https协议的操作方法-经验总结
    Loadrunner上传与下载文件脚本
    Loadrunner之HTTP接口测试脚本实例
    Android界面性能调优手册
    Loadrunner11.0 录制手机App脚本的方法
    资源监控工具--spotlight
    Jmeter常见问题
  • 原文地址:https://www.cnblogs.com/mmz-tester/p/10456737.html
Copyright © 2011-2022 走看看