Linux内存管理策略

Linux内存 - 图1

  • 内存盈余时,拿出部分内存作为buffer(读写缓存),用于提高IO速度,拿出部分内存用作chche(文件缓存),用于提高应用的计算处理速度;
  • 内存不足时,则会释放buffer、cache,满足应用的内存的请求;

    查看剩余内存的内存

    1. root@rk3399_lonbon_mid:/data/ssh # free -m
    2. total used free shared buffers
    3. Mem: 1962 1503 459 44 15
    4. -/+ buffers/cache: 1488 474
    5. Swap: 508 0 508

    说明:

  • total :总的内存大小,总内存 = free + used

  • used:已使用的内存。“Mem行”下的used内存是包含了buffer和cache的;“-/+ buffers/cache行”下的used内存是不包含buffer和cache的。
  • free:剩余内存。“Mem行”下的free内存是不包含buffer和cache的;“-/+ buffers/cache行”下的free内存是包含了buffer和cache的。
  • shared:多个进程共享的内存。shared内存属于used内存的一部分。
  • buffers:用于读写缓冲的内存。

手动释放cache

sysc 先将cache中缓冲的文件数据写入到磁盘
echo 0 > /proc/sys/vm/drop_chches 让系统自动管理内存
echo 1 > /proc/sys/vm/drop_chches 释放页缓存
echo 2 > /proc/sys/vm/drop_chches 释放dentries和inodes
echo 3 > /proc/sys/vm/drop_chches 释放所有缓存