1、简介

1.1 介绍

    很多时候,服务器 负载 很高(执行操作 很慢),很多 原因 造成 这种 现象(内存不足 就是其中之一);此文 主要 关于 内存的 查看、释放 相关 知识     

1.2 操作 系统

## 本文 使用 CentOS 7
# cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core) 

    

2、内存 信息

2.1 获取 内存信息

# free -m
             total       used       free     shared    buffers     cached
Mem:           979        261        717          6          0         74
-/+ buffers/cache:        186        793
Swap:         2079          0       2079

    

2.2 信息 解析

    Mem:物理内存 统计
    -/+ buffers/cache:物理内存 缓存 统计
    Swap:硬盘 交换分区 统计

    

2.2.1 物理内存 统计

    total:总内存
    used:已使用的内存(包含 shared、buffers、cached)
    free:未分配的内存
    shared:共享内存
    buffers:块设备的读写缓冲区
    cached:文件系统的cache

    

2.2.2 物理缓存 统计

    used:该数值 为 物理内存 行数值计算或者(used - buffers - cached)
    free:该数值 为 物理内存 行数值计算或者(free + buffers + cached)

    

2.2.3 交换分区 统计

    暂不做 介绍     

3、内存 释放

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

3.1 刷新 缓冲区

    某些 情况下,我们 必须停止系统,此时 可以 运行 sync 命令以确保文件系统的完整性;sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件

## 一般刷两次
# sync && sync

    

3.2 释放 内存

## /proc/sys/vm/drop_caches 默认值 为 0
# echo 3 > /proc/sys/vm/drop_caches