Linux命令---手动释放内存

1、查看内存使用情况 free -m free -gtotal:内存总数used:已经使用的内存数free:空闲的内存数shared:当前已经废弃不用buffers Buff

1、查看内存使用情况 free -m/free -g

total:内存总数

used:已经使用的内存数

free:空闲的内存数

shared:当前已经废弃不用

buffers Buffer:缓存内存数

cached Page:缓存内存数

第一行:

    Mem的 Total=used+free used使用内存 free空闲内存

    shared 表示被几个进程共享的内存的。

    buffer 缓冲 是用于存放要输出到disk(块设备)的数据。 是根据磁盘的读写 设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。

    cache 缓存 是存放从disk上读出的数据。是把读取过的数据保存起来,重新读取时若命中(找到需要的数据)就不要去读硬盘了,若没有命中就读硬盘。

    其中的数据会根据读取频率进行组织,把最频繁读取的内容放在最容易找到的位置,把不再读的内容不断往后排,直至从中删除。 如果cache 的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被cache住,那么磁盘的读IO bi会非常小。

第二行:

    这一行表示两项 -buffers/cache 和 + buffers/cache

    -buffers/cache = used -(buffers+cache) 表示使用的内存中不计算buffers和cache,系统使用内存量

    + buffers/cache =free+( buffers+cache) 表示系统空闲内存与buffers、cache的和   

第三行:

  交换内存        使用量       空限量

  Linux服务器运行一段时间后,由于其内存管理机制,会将暂时不用的内存转为buff/cache,这样在程序使用到这一部分数据时,能够很快的取出,从而提高系统的运行效率,所以这也正是linux内存管理中非常出色的一点,所以乍一看内存剩余的非常少,但是在程序真正需要内存空间时,linux会将缓存让出给程序使用,这样达到对内存的最充分利用,所以真正剩余的内存是free+buff/cache 但是有些时候大量的缓存占据空间,这时候应用程序回去使用swap交换空间,从而使系统变慢,这时候需要手动去释放内存,释放内存的时候,首先执行命令 sync 将所有正在内存中的缓冲区写到磁盘中,其中包括已经修改的文件inode、已延迟的块I/O以及读写映射文件,从而确保文件系统的完整性

2、sync

       手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)

3、释放 echo 3 > /proc/sys/vm/drop_caches

  0:0是系统默认值,默认情况下表示不释放内存,由操作系统自动管理

  1:释放页缓存

  2:释放dentries和inodes

  3:释放所有缓存

  如果现在想让操作系统重新分配内存,那么设置drop_caches的值为0即可

  echo 0 > /proc/sys/vm/drop_caches

(152)
打赏 支付红包 支付红包 微信打赏 微信打赏
上一篇 2024-04-30 09:11:04
下一篇 2024-12-12 09:58:03

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信