这篇文章上次修改于 407 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

概述

  • 使用 free 命令查看内存使用情况, 如
root@master236 etc]# free -m
              total        used        free      shared  buff/cache   available
Mem:          15884        8037         392         832        7455        6684
Swap:          5119         647        4472
  • buff是缓冲区,用来增加io的写入效率,数据改动存入buff缓冲区,在达到一定数量后,一次性批量写入磁盘
  • cache是数据缓存区, 用来增加io的读取效率,读取数据时,现在cache中查询数据,如果cache缓存中有数据,就直接返回数据,检查io的磁盘寻道读取次数。

清理buff/cache

  • 释放cache命令
# 第一种方法
echo 1 > /proc/sys/vm/drop_caches

# 第二种方法
sysctl -w vm.drop_caches=1

  • 清理目录缓存和inodes
# 第一种方法
echo 2 > /proc/sys/vm/drop_caches

# 第二种方法
sysctl -w vm.drop_caches=2
  • 清理内存页的缓存
# 第一种方法
echo 3 > /proc/sys/vm/drop_caches

# 第二种方法
sysctl -w vm.drop_caches=3

  • 将缓冲区数写入磁盘, 也可以杀死僵尸进程
# 执行sync命令
sync