母亲节祝福语 三明治的做法 红烧排骨的家常做法 小米粥的做法 小龙虾的做法 大闸蟹的做法 鲜贝的家常做法 卷心菜的做法 苹果派的做法 冬瓜的做法大全家常菜
当前位置: 首页 > 生活百科 >

内存释放过程(Linux 释放物理内存和虚拟内存)

331次浏览     发布时间:2024-04-23 22:04:01    



1.查看内存占用情况

$ free -m -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        884M        327M        136K        626M        780M
Swap:          2.0G        462M        1.5G

2.释放物理内存

(1) 释放内存前先使用sync命令做同步,以确保文件系统的完整性,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。否则在释放缓存的过程中,可能会丢失未保存的文件。

0:不释放(系统默认值)1:释放页缓存2:释放dentries和inodes3:释放所有缓存

$ sync

(2) 然后通过修改proc系统的drop_caches清理free的cache

$ echo 3 > /proc/sys/vm/drop_caches

(3) 释放完内存后改回去让系统重新自动分配内存

$ echo 0 > /proc/sys/vm/drop_caches

这个执行会报如下错误:-bash: echo: write error: Invalid argument貌似只能重启系统才会生效~坑爹,不管了

3.释放虚拟内存

(1) 关停swap分区(释放虚拟内存):

$ sudo swapoff -a

注意:要保证物理内存剩余量要大于等于swap使用量,否则不能成功释放虚拟内存.(根据内存机制,swap分区一旦释放,所有存放在swap分区的文件都会转存到物理内存上)例如:

$ sudo swapoff -aswapoff: /dev/sdb8: swapoff failed: Cannot allocate memory

如果成功关停swap分区,可以看到Swap这一行的状态显示全0:

$ free -m -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        1.3G        222M        696K        271M        330M
Swap:            0B          0B          0B

(2) 再开启swap分区:

$ sudo swapon -a

注意如果报如下错误:

swapon: /swap/swapfile: insecure permissions 0644, 0600 suggested.

就等一会再执行即可!

这时可以看到swap分区free==total,used=0

$ free -m -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        1.3G        323M        696K        233M        394M
Swap:          2.0G          0B        2.0G
相关文章