All things are difficult before they are easy. 没有软件的裸机是一具僵尸,没有硬件的软件是一个幽灵。2012,专注于Linux和C语言,关注自动化、性能测试,关注开源社区和开源测试工具、方法,尝试测试团队管理!

释放Linux Cached内存的Bash脚本

上一篇 / 下一篇  2010-11-14 19:08:53 / 个人分类:Linux

    LINUX内存管理机制,一般情况下不需要特意去释放已经使用的cache。Cache机制的存在,使得Linux对磁盘的读写速度是有较大的好处的。在 Linux 操作系统中,当应用程序需要读取文件中的数据时,操作系统先分配一些内存,将数据从存储设备读入到这些内存中,然后再将数据分发给应用程序;当需要往文件中写数据时,操作系统先分配内存接收用户数据,然后再将数据从内存写到磁盘上。
    写了个可释放Cached内存的Shell脚本,分享一下:
#! /bin/bash
#Free的Memory小于400M时 释放Cached的内存
freemem=$(cat /proc/meminfo | grep "MemFree" | awk '{print $2}')
if [ $freemem -le 409600 ];then
    date  >> /var/log/mem.log
    free -m >> /var/log/mem.log
    sync
    sync
    echo 3 > /proc/sys/vm/drop_caches
    free -m >> /var/log/mem.log            
fi

# cache释放:
# 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
# 说明,释放前最好sync一下,防止丢数据。

得到/var/log/mem.log内容如下:
2010年 11月 09日 星期二 22:02:29 CST
                total       used       free     shared    buffers     cached
   Mem:          1472       1261        210          0        106        526
   -/+ buffers/cache:        628        843
   Swap:         1906          1       1905
                total       used       free     shared    buffers     cached
   Mem:          1472        694        778          0          0        109
   -/+ buffers/cache:        584        887
   Swap:         1906          1       1905


TAG: cache Cache Linux linux 内存 缓存

 

评分:0

我来说两句

smile665

smile665

Stay hungry, stay foolish. 得意之时谨记,一半命运还掌握在上帝手里;失意之时须知,一半命运还掌握在自己手里。

日历

« 2024-04-23  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 955445
  • 日志数: 220
  • 建立时间: 2008-11-06
  • 更新时间: 2012-10-06

RSS订阅

Open Toolbar