zoukankan      html  css  js  c++  java
  • linux 内存

    1.问题描述:

      free  -g  Free里面的值为0就是内存已经耗尽了,没有内存可用了吗?

    答案:非也!因为Linux对内存的管理与Windows不同,Linux 优先使用物理内存,当物理内存还有空闲时,linux是不会施放内存的,即时占用内存的程序已经被关闭了(这部分内存就用来做缓存了)。这样做的好处是,启动那些刚开启过的程序、或是读取刚存取过得数据会比较快,对于服务器很有好处。free小并不是说内存不够用了,应该看的是free的第二行最后一个值:-/ buffers/cache: 3948 4031 ,这才是系统可用的内存大小。

    2.测试

    [root@node2 ~]# free -h
                 total       used       free     shared    buffers     cached
    Mem:          3.7G       1.2G       2.5G       482M        63M       912M
    -/+ buffers/cache:       249M       3.5G
    Swap:         3.9G         0B       3.9G
    [root@node2 ~]# dd if=/dev/zero of=tem1p bs=1M count=400    #可以生成一个实际的400M的文件,文件会写入硬盘
    400+0 records in
    400+0 records out
    419430400 bytes (419 MB) copied, 0.656023 s, 639 MB/s
    [root@node2 ~]# date
    Thu Sep  3 00:15:17 PDT 2020
    [root@node2 ~]# free -h
                 total       used       free     shared    buffers     cached
    Mem:          3.7G       1.6G       2.1G       482M        63M       1.3G
    -/+ buffers/cache:       261M       3.5G
    Swap:         3.9G         0B       3.9G
    [root@node2 ~]# date
    Thu Sep  3 00:15:48 PDT 2020
    [root@node2 ~]# free -h
                 total       used       free     shared    buffers     cached
    Mem:          3.7G       1.6G       2.1G       482M        63M       1.3G
    -/+ buffers/cache:       260M       3.5G
    Swap:         3.9G         0B       3.9G
    [root@node2 ~]# sync
    [root@node2 ~]# free -h
                 total       used       free     shared    buffers     cached
    Mem:          3.7G       1.6G       2.1G       482M        63M       1.3G
    -/+ buffers/cache:       260M       3.5G
    Swap:         3.9G         0B       3.9G
    [root@node2 ~]# cat /proc/sys/vm/drop_caches  
    0
    [root@node2 ~]# echo 3 > /proc/sys/vm/drop_caches   #echo 3 > /proc/sys/vm/drop_caches; free pagecache, dentries and inodes
    [root@node2 ~]# free -h
                 total       used       free     shared    buffers     cached
    Mem:          3.7G       778M       3.0G       482M       792K       539M
    -/+ buffers/cache:       237M       3.5G
    Swap:         3.9G         0B       3.9G
    

    3.相关解释

    1.free -m命令解释

    2./proc/sys/vm/drop_caches解释

    /proc/sys/vm/drop_caches默认是0

    # echo 1 > /proc/sys/vm/drop_caches; free pagecache, use
    # echo 2 > /proc/sys/vm/drop_caches; free dentries and inodes
    # echo 3 > /proc/sys/vm/drop_caches; free pagecache, dentries and inodes

    注意:使用之前需要先sync,将缓存刷到磁盘中。

    可以看出,/proc/sys是一个虚拟文件系统,可以通过对它的读写操作做为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存。其默认数值为0.

    向/proc/sys/vm/drop_caches中写入内容,会清理缓存。建议先执行sync(sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)。执行echo 1、2、3 至 /proc/sys/vm/drop_caches, 达到不同的清理目的

  • 相关阅读:
    关于vue无法侦听数组及对象属性的变化的解决方案
    web js导出csv 文件(使用a标签)
    微信小程序-获取用户信息和openid,session_key,
    H5适配 iponex
    项目使用iconfont图标
    锚点链接,组件库中锚点实现
    前端的调试工具和node调试工具
    前端模块化 CommonJS AMD CMD ES6
    支付宝小程序
    个人创用 UA 列表
  • 原文地址:https://www.cnblogs.com/jycjy/p/6864327.html
Copyright © 2011-2022 走看看