root@xdj-Z9PA-D8-Series:~# free -m
total used free shared buffers cached
Mem: 15977 1683 14293 0 132 549
-/+ buffers/cache: 1001 14975
Swap: 0 0 0

输出结果中真正由应用程序使用的内存量须要看第二行中used的值,真正可用的空暇内存也是看第二行中free的值,第一行中buffers主要用于缓存文件系统中的元数据信息(dentries、inodes),cached主要用于缓存文件系统中的pages信息。在必要时buffers、cached所占内存可被回收用于其它应用程序。

设置下面值能够将文件系统缓存的clean pages、dentries、inodes移出内存,腾出可用内存:

To free pagecache:
echo 1 > /proc/sys/vm/drop_caches To free dentries and inodes:
echo 2 > /proc/sys/vm/drop_caches To free pagecache, dentries and inodes:
echo 3 > /proc/sys/vm/drop_caches

以上操作并不是具有破坏性,由于他们并不会将dirty caches释放掉,为了获得很多其它的可用内存,用户能够先运行sync操作将dirty caches写回磁盘,使之变为clean caches(cache中的内容还是保留在内存中)。然后在设置drop_caches。

使用drop_caches能够将文件系统缓存中的clean caches释放掉,使你的系统又一次处于冷启动的状态。可是随着兴许的读写操作,文件系统缓存又会被填充。

将文件的打开方式设置为O_DIRECT。能够绕过文件系统缓存,在使用O_DIRECT直接操作磁盘时,磁盘中的数据有可能是过时的。因此,在此之前,须要先运行sync操作,确保将缓存中的脏页先写回disk。

注:

一个IO请求达到磁盘之前,可能经过多层缓存:

1、操作系统级文件系统缓存;

2、存储控制器软件级缓存;

3、磁盘设备本身自带的硬件缓存。

由free命令想到的的更多相关文章

  1. 24.command-executor

    这里先给出题目链接: https://command-executor.hackme.inndy.tw/ 这是一道不错的ctf题,首先说一下考察点: 文件包含读源码 代码分析结合CVE CVE导致的命 ...

  2. centos7中没有安装ifconfig命令的解决方法

    初装centos 7时,运行config报 command not found 错误,我在网上找了大量资料,下面的资料中查找原因和解决方式最详细,能很好的解决这个问题. ifconfig命令是设置或显 ...

  3. spool命令

    最近工作中,需对数据进行比对.在此之前,则需将数据导出.想到以前用过的spool命令,实验一番,分享如下: 需建SQL执行脚本,内容如下: set feedback off   --关掉行数显示set ...

  4. Linux下的几个好用的命令与参数

    将所有文件的编码,转换为UTF-8 find . ! -type d -exec enca -L zh_CN -x UTF-8 {} \; 将指定目录下所有文件权限设定为644 find . ! -t ...

  5. mac 终端 常用命令

    基本命令1.列出文件ls 参数 目录名        例: 看看驱动目录下有什么:ls /System/Library/Extensions参数 -w 显示中文,-l 详细信息, -a 包括隐藏文件2 ...

  6. WPF之命令浅谈

    一.认识命令 1.1命令的特点 提到“命令”,我们应该想到命令的发出者,命令的接受者,命令的内容,准备工作,完成任务,回报工作...与事件中的发送者,接受者,消息,处理,处理,处理一一对应,如果是单纯 ...

  7. git开发流程、常用命令及工具、TortoiseGit使用及常见问题

    根据我最近使用git的一些经历,git是基于分支的版本控制工具,分支有远程分支和本地分支. 一.开发流程 - 从远程服务器的master,clone一份项目文件到本地,然后本地master的基础上br ...

  8. 关于git,你需要知道一点命令

    最近有朋友经常问git的一些操作,写在这里与大家分享,以后也不用一一解释了.惯例,这是基础分享,从安装开始说起: 安装: 去这里 https://git-scm.com/ 找到你所需要的版本,下载并安 ...

  9. Linux 命令积累

    1, su root 切换到root用户 su user 切换到普通用户 2, mkdir / touch 创建文件夹 /文件 3, vi 打开编辑文件 按insert进入编辑模式 编辑完成后 按es ...

随机推荐

  1. int、bigint、smallint 和 tinyint范围

    int.bigint.smallint 和 tinyint范围使用整数数据的精确数字数据类型.bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (922337 ...

  2. Swagger框架学习分享

    Swagger框架学习分享 转至元数据结尾 Created and last modified by 刘新宇 大约1分钟曾经 pageId=162045803#page-metadata-start& ...

  3. DDos攻击篇

    DDoS(Distributed Denial of Service,分布式拒绝服务)攻击的主要目的是让指定目标无法提供正常服务,甚至从互联网上消失,是目前最强大.最难防御的攻击之一. 1.1. SY ...

  4. hdoj--2255--奔小康赚大钱(KM算法模板)

    奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  5. Spring中JdbcTemplate中使用RowMapper

    转自:https://blog.csdn.net/u012661010/article/details/70049633 1 sping中的RowMapper可以将数据中的每一行数据封装成用户定义的类 ...

  6. VUEJS2.0源码理解--优

    VUEJS2.0源码理解 http://jiongks.name/blog/vue-code-review/#pingback-112428

  7. jquery的this和$(this)

    1.JQuery this和$(this)的区别 相信很多刚接触JQuery的人,很多都会对$(this)和this的区别模糊不清,那么这两者有什么区别呢? 首先来看看JQuery中的  $()  这 ...

  8. javascript中的分号【;】

    以前一直以为,在编写js代码的时候,如果在代码后面不添加分号,JavaScript会自动填补分号.最近看了权威指南,才突然发现一直理解有误,而且关于分号的使用,还有很多需要注意的地方. 1.分号的省略 ...

  9. 一个 passive 引发的bug

    不是什么很难的东西,权且做个记录. 首先说下背景,目前的项目中,需要同时绑定 wheel 和 scroll 事件. 绑定 wheel,目的是开发 ctrl + wheel 缩放页面功能,此功能与浏览器 ...

  10. 【Linux】SecureCRT中按退格键出现^H

    分两步: ①SecureCRT上部的“选项”→“会话选项”→终端→仿真→映射键→其他映射→Backspace发送delete(B) 勾选中,确定 ②SecureCRT上部的“选项”→全局选项→常规→默 ...