内存查看命令

free

语法

 

free [options]

参数说明

-b, --bytes  显示内存的字节数

-k, --kilo   以千字节显示内存容量,这是默认的

-m, --mega   以兆字节显示内存容量

-g, --giga   以千兆字节显示内存容量

--tera       以tb显示内存容量

-h, --human  显示所有输出字段自动缩放到最短的三位数单位,并显示输出的单位。以下单位使用。

                B = bytes
                K = kilos
                M = megas
                G = gigas
                T = teras

-w, --wide   切换到宽模式。宽模式产生的长度超过80个字符。在这个模式下,缓冲和缓存分别被报告在两个独立的列中。

-c, --count count
             显示结果计数时间。需要- s选项。

-l, --lohi   显示详细的低内存和高内存统计数据。

-s, --seconds seconds
             连续显示结果延时秒。您可能实际上指定了任何延迟的浮点数,usleep(3)用于微秒的分辨率延迟次了。

--si         用1000而不是1024

-t, --total  显示列总数的一行。

--help       显示帮助信息

-V, --version 显示版本信息

 

数据从/proc/meminfo中获取

 

示例

[root@fox ~]# free -m         
                total        used        free      shared  buff/cache   available
Mem:            992          66         760           0         165         781
Swap:             0           0           0
  • total:总内存
  • used:程序已使用内存
  • free:空闲内存
  • shard:程序共享的内存空间
  • buffer/cache:buffer cache和page cache,被算在used中
  • available:系统可用内存

 

回收内存空间

  清缓存的工作也并不是没有成本。理解cache是干什么的就可以明白清缓存必须保证cache中的数据跟对应文件中的数据一致,才能对cache进行释放。所以伴随着cache清除的行为的,一般都是系统IO飙高。因为内核要对比cache中的数据和对应硬盘文件上的数据是否一致,如果不致需要写回,之后才能回收。在手工回收内存前,最好同步一下数据。

sync
echo 1 > /proc/sys/vm/drop_caches:表示清除 pagecache 。

sync
echo 2 > /proc/sys/vm/drop_caches:表示清除回收 slab 分配器中的对象(包括目录项缓存和 inode 缓存)。 slab 分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的 pagecache 。

sync
echo 3 > /proc/sys/vm/drop_caches:表示清除 pagecache 和 slab 分配器中的缓存对象。

 

FreeMem.sh

#!/bin/bash

used=`free -m | awk 'NR==2' | awk '{print $3}'`
free=`free -m | awk 'NR==2' | awk '{print $4}'`

echo "===========================" >> /var/log/mem.log
date >> /var/log/mem.log
echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.log

if [ $free -le 100 ] ; then
    sync && echo 3 > /proc/sys/vm/drop_caches
    echo "Memory recycling is completed" >> /var/log/mem.log
else
    echo "Free memory is enough" >> /var/log/mem.log
fi

 

 

 
 posted on 2017-12-04 15:54  fox_zhang  阅读(311)  评论(0编辑  收藏  举报