zoukankan      html  css  js  c++  java
  • Linux buff/cache (free -h/m)

    Linux内存的buffers和cached

    • total:是指计算机总物理内存;
    • used:已用的内存;
    • free:空余的内存;
    • total = used + free
    • shared:被多个进程共享的内存;
    • buffers:用于存放要输出到disk(块存储)的数据,在这里buff是指被OS buffer住的内存(written to disk);
    • cached:存放从disk上读出的数据;buffer和cache是为了提高IO性能并由OS管理。

    我们手动清理Linux缓存释放内存,一般都是清理的buff/cache占用的内存,关于Linux内存清理参考:Linux手动清除内存命令的方法

    Linux手动清除缓存的方法

    Linux长时间使用会导致cache缓存占用过大,甚至拖累CPU的使用率,Linux百科网可以通过命令手动释放Linux内存,详细教程如下:

    一:先查看下当前Linux的内存占用情况

    • 命令:free -m

    示例如下:

    如上述例子所示,Linux百科网使用一台1核2G的云服务器做测试:

    total:是指计算机总物理内存;
    used:已用的内存;
    free:空余的内存;
    total = used + free
    shared:被多个进程共享的内存;
    buff/cache:buffers用于存放要输出到disk(块存储)的数据,在这里buff是指被OS buffer住的内存(written to disk);cached存放从disk上读出的数据,Buffer和cache是为了提高IO性能并由OS管理。

    一般我们清理Linux缓存主要是清理buff/cache占用的内存资源。

    二:执行sync命令

    • 命令:sync

    执行sync命令是为了确保文件系统的完整性,手动执行sync命令,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。

    三:执行清除Linux缓存命令

    • 命令:echo 3 > /proc/sys/vm/drop_caches

    /proc是一个虚拟文件系统,通过对它的读写操作做为与kernel实体间进行通信的一种手段。Linux百科网通过修改/proc中的文件来对当前kernel的行为做出调整。所以,我们通过调整/proc/sys/vm/drop_caches来释放内存。

    综上,Linux百科网3条命令即可清除Linux缓存释放内存。

    Linux下内存buff/cache占用过多问题解决

    在Linux下经常会遇到buff/cache内存占用过多问题,尤其是使用云主机的时候最严重,由于很多是虚拟内存,因此如果buff/cache占用过大的,free空闲内存就很少,影响使用;

    通常内存关系是:

    普通机器:total=used+free

    虚拟机器:total=used+free+buff/cache

    比如说用腾讯云主机,就是total=used+free+buff/cache,如下图所示:

    这个时候可以看到buff/cache占用的内存非常大,

    这个时候可以使用一下命令去清除一下cache内存

    echo 1 > /proc/sys/vm/drop_caches

    echo 2 > /proc/sys/vm/drop_caches

    echo 3 > /proc/sys/vm/drop_caches

    drop_caches的值可以是0-3之间的数字,代表不同的含义: 0:不释放(系统默认值) 1:释放页缓存 2:释放dentries和inodes 3:释放所有缓存

    如下图所示:

    可以看到通过三次清除,内存由738变成了94,free内存增加了!

  • 相关阅读:
    JSP内置对象
    Angular $scope和$rootScope事件机制之$emit、$broadcast和$on
    Ionic开发实战
    Entity Framework 5.0 Code First全面学习
    6个强大的AngularJS扩展应用
    使用npm安装一些包失败了的看过来(npm国内镜像介绍)
    自己家里搭建NAS服务器有什么好方案?
    自己动手制作CSharp编译器
    使用Visual Studio Code搭建TypeScript开发环境
    Office web app server2013详细的安装和部署
  • 原文地址:https://www.cnblogs.com/linux985/p/14415957.html
Copyright © 2011-2022 走看看