1、free 命令的选项

使用 free 命令查看服务器内存使用情况。

free [-b|-k|-m|-g|-h] [-l] [-o] [-t] [-s delay] [-c count] [-V]

(1)-b,-k,-m,-g   表示输出显示的单位为 bytes, KB, MB, or GB,不添加选项的话默认以 KB 为单位显示

(2)-h  以人类可读的方式显示,即后边会自动带上单位

(3)-l  显示详细的低内存和高内存统计信息(增加了 Low 和High 这两行显示)

(4)-o   使用旧的格式显示(不显示 -/+buffers/cache 这一行)

(5)-t  增加显示 Total 行,Total = Mem + Swap

(6)-s delay  每 delay 秒重复打印一次,delay 为具体的秒数

(7)-c count   重复打印 count 次后退出,count 为具体的次数。需要配合 -s delay 使用

(8)-V  显示版本信息

2、free命令显示结果

以下是我们测试环境的参数:

第一行Mem,表示物理内存统计:

(1)total  物理内存总量,total = used + free

(2)used  总计分配给缓存(包含 buffers 与 cache)使用的数量,但其中可能部分缓存并未实际使用

(3)free  未被分配的内存

(4)shared  共享内存,一般系统不会用到,总是0

(5)buffers  系统分配但未被使用的 buffers 数量

(6)cached  系统分配但未被使用的 cache 数量

第二行-/+ buffers/cache:

(1)used  实际使用的内存,等于第一行的 used - buffers - cached

(2)free  实际可用内存,等于第一行的 free + buffers + cached

第三行Swap表示交换区的使用情况,也就是我们通常所说的虚拟内存。

(1)total  总量

(2)used  使用

(3)free  空闲

3、linux的缓存设计

(1)Linux内存管理做了很多精心的设计,除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换),还采取了两种主要Cache方式:Buffer Cache 和 Page Cache,目的就是为了提升磁盘IO的性能。

即 buffer (Buffer Cache) 用于存放要输出到磁盘的数据,而 cache(Page Cache) 是从磁盘读出存放到内存中等待以后使用的数据。它们的引入都是为了提升IO的性能。

(2)从低速的块设备(硬盘)上读取数据会暂时保存在内存中,即使数据在当时已经不再需要了,但在应用程序下一次访问该数据时,它可以从内存中直接读取,从而绕开低速的块设备(硬盘),从而提高系统的整体性能。

Linux会充分利用这些空闲的内存,设计思想是内存空闲还不如拿来多缓存一些数据,等下次程序再次访问这些数据速度就快了。

(3)如果程序要使用内存而系统中内存又不足时,这时不是使用交换分区,而是快速回收部分缓存,将它们留给用户程序使用。

因此,可以看出,buffers/cached真是百益而无一害,真正的坏处可能让用户产生一种错觉——Linux耗内存!其实不然,Linux并没有吃掉你的内存,只要还未使用到交换分区,你的内存所剩无几时,你应该感到高兴,因为Linux缓存了大量的数据,也许下一次你就访问的是这些缓存数据。

windows系统内存是软件用多少给多少。而linux是你有多少物理内存,我全部用,正在运行的软件占用的活动内存之外,其余空闲内存基本都被用来预加载了一些其他系统或者应用数据。这样你打开软件的时候才会很快。

内存闲着就是浪费,不如多放点数据,指不定下次需要访问的数据就能够直接从内存获得而不用访问很慢的硬盘。一定程度上说,linux和mac流畅度比windows好,这个占很重要一部分原因。

附录:

下面这个是阿里云服务器T5突发型实例的内存:显示略有不同

Linux 使用 free 命令查看内存使用情况的更多相关文章

  1. free命令查看内存使用情况(转载)

    linux free命令查看内存使用情况 时间:2016-01-05 06:47:22来源:网络 导读:linux free命令查看内存使用情况,free命令输出结果的各选项的含义,以及free结果中 ...

  2. Linux下jmap命令查看内存使用

    Linux下jmap命令查看内存使用 jmap -heap 1234(1234为进程号) jmap是JDK自带的一个工具,非常小巧方便,其支持参数如下: -heap       打印heap空间的概要 ...

  3. linux free 命令 查看内存使用情况

    查看Linux服务器下的内存使用情况,可以使用命令free -m [root@localhost ~]$ free // 以KB为单位显示内存使用情况 [root@localhost ~]$ free ...

  4. linux下top命令查看cpu占用情况

    可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等.退出 top 的命令 ...

  5. linux 清理内存命令 查看内存命令

    查看内存: 我们可以用free命令查看内存信息: free -g total used free shared buffers cachedMem: 15   15    0     0       ...

  6. Linux下查看内存使用情况方法总结

    Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内 ...

  7. linux top命令查看内存及多核CPU的使用讲述【转】

    转载一下top使用后详细的参数,之前做的笔记找不见了,转载一下,作为以后的使用参考: 原文地址:http://blog.csdn.net/linghao00/article/details/80592 ...

  8. 【查看内存】Linux查看内存使用情况(二)

    Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内 ...

  9. Linux使用jstat命令查看jvm的GC情况(转)

    B. jstack jstack主要用来查看某个Java进程内的线程堆栈信息.语法格式如下: 1 jstack [option] pid 2 jstack [option] executable co ...

随机推荐

  1. Project facet Java version 1.8 not supported JDK版本不对无法启动项目解决办法

    https://jingyan.baidu.com/article/6c67b1d69a59a02787bb1e30.html

  2. 第三期分享:一款很好用的api文档生成器

    主要用途:生成API的文档 源码链接:https://github.com/tmcw/docbox 最近刚好在看:Trending in open source,在JS语言中,slate一直在周排行上 ...

  3. jQuery学习之旅 Item10 ajax快餐

    1. 摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案, 即使你会使用jQuery也能在阅读中发现些许秘籍. 本篇文章讲解如何使用jQuery方便快捷的实现A ...

  4. java之集合Collection 详解之4

    package cn.itcast_04; public class Student { private String name; private int age; public Student() ...

  5. 巩固java(二)----JVM堆内存结构及垃圾回收机制

    前言:        我们在运行程序时,有时会碰到内存溢出(OutOfMemoryError)的问题,为了解决这种问题,我们有必要了解JVM的内存结构和垃圾回收机制. 正文: 1.JVM堆内存结构   ...

  6. bmob云代码中生成缩略图

    function onRequest(request, response, modules) { var options = { url:"https://api.bmob.cn/1/ima ...

  7. 【BZOJ 4010】 [HNOI2015]菜肴制作

    Description 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予1到N的顺序编号,预估质量最高的菜肴编号为 ...

  8. 【dfs+连通分量】Bzoj1123 POI2008 BLO

    Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. Input 输入n&l ...

  9. exgcd学习笔记

    扩展欧几里得算法是当已知a和b时,求得一组x和y使得 首先,根据数论中的相关定理,解一定存在        //留坑待填 之后我们可以推一推式子 将a替换掉 展开括号 提出b,合并 且 设 现在已经将 ...

  10. MYSQL—— year类型的使用与注意点!

    mysql的日期与时间类型:分为time.date.datetime.timestamp.year,主要总结下year的用法: 1.类型支持:year 与 year(4),注意无year(2)的定义方 ...