如何python 手动释放内存Linux内存的方法

Linux下如何释放内存_Linux教程_Linux公社-Linux系统门户网站
你好,游客
Linux下如何释放内存
来源:Linux社区&
作者:Linux
在Linux系统下,我们一般不需要去释放内存,因为系统已经将内存管理的很好。但是凡事也有例外,有的时候内存会被缓存占用掉,导致系统使用SWAP空间影响性能,此时就需要执行释放内存(清理缓存)的操作了。
Linux系统的缓存机制是相当先进的,他会针对dentry(用于VFS,加速文件路径名到inode的转换)、Buffer Cache(针对磁盘块的读写)和Page Cache(针对文件inode的读写)进行缓存操作。但是在进行了大量文件操作之后,缓存会把内存资源基本用光。但实际上我们文件操作已经完成,这部分缓存已经用不到了。这个时候,我们难道只能眼睁睁的看着缓存把内存空间占据掉么?
所以,我们还是有必要来手动进行Linux下释放内存的操作,其实也就是释放缓存的操作了。
要达到释放缓存的目的,我们首先需要了解下关键的配置文件/proc/sys/vm/drop_caches。这个文件中记录了缓存释放的参数,默认值为0,也就是不释放缓存。他的值可以为0~3之间的任意数字,代表着不同的含义:
0 & 不释放
1 & 释放页缓存
2 & 释放dentries和inodes
3 & 释放所有缓存
知道了参数后,我们就可以根据我们的需要,使用下面的指令来进行操作。
首先我们需要使用sync指令,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。否则在释放缓存的过程中,可能会丢失未保存的文件。
接下来,我们需要将需要的参数写进/proc/sys/vm/drop_caches文件中,比如我们需要释放所有缓存,就输入下面的命令:
#echo 3 & /proc/sys/vm/drop_caches
此指令输入后会立即生效,可以查询现在的可用内存明显的变多了。
要查询当前缓存释放的参数,可以输入下面的指令:
#cat /proc/sys/vm/drop_caches
相关资讯 & & &
& (02/02/:34)
& (09/29/:55)
& (11/18/:57)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款如何释放linux的内存
如何释放linux的内存
学习啦【内存知识】 编辑:沈迪豪
  你们知道怎么释放linux的内存吗?不知道的话跟着学习啦小编一起来学习怎么释放linux的内存。
  释放linux的内存的步骤
  Linux下操作频繁时,物理内存会被快速用完,当操作结束后,物理内存没有被正常的释放,而一直当作caching,影响系统的正常运行,今天就来谈谈如何能释放这一部分被占用的内存。
  1打开Linux命令窗口
  可使用快捷键Ctrl+Alt+T打开
  2首先查看一下当前Linux系统内存使用情况
  使用命令:Free &m
  total 内存总数
  used 已经使用的内存数
  free 空闲的内存数
  3接下来的操作需要先获取高级用户权限
  输入命令:sudo -i
  确定后输入高级用户密码
  4先进行拷贝文件拷贝,增加内存使用量(即used的占用量)
  输入命令: cp -r /etc ~/test/
  5执行命令结束后,再次查看一下当前Linux系统内存使用情况,发现有70M的内存被cached用了。
  使用命令:Free &m
  6接下来释放已被占用的缓存
  输入命令: cat /proc/sys/vm/drop_caches
  回车后返回结果0
  7输入命令:sync
  回车后继续输入命令:echo 3 & /proc/sys/vm/drop_caches
  回车后继续输入命令:cat /proc/sys/vm/drop_caches
  回车后返回结果3
  是将/proc/sys/vm/drop_caches值设为3
  8缓存释放已经完成了,再次执行命令Free &m看看,通过图中可以对比看到,内存被释放了218M。
本文已影响 人
[如何释放linux的内存]相关的文章
看过本文的人还看了
787人看了觉得好
3481人看了觉得好
781人看了觉得好
【内存知识】图文推荐
Copyright & 2006 -
All Rights Reserved
学习啦 版权所有shell(2)
当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。
为了提高磁盘存取效率,Linux做了一些精心的设计,除了对dentry目录进行缓存(用于VFS,加速文件路径名到inode的转换),还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。
那么有人说过段时间,linux会自动释放掉所用的内存,其实是没有自动释放得.
二、手动释放缓存
/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与Kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存。操作如下:
# cat /proc/sys/vm/drop_caches
首先,/proc/sys/vm/drop_caches的值,默认为0。
手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-Node、已延迟的块 I/O 和读写映射文件)
# echo 3 & /proc/sys/vm/drop_caches
# cat /proc/sys/vm/drop_caches
将/proc/sys/vm/drop_caches值设为3
total used free shared buffers cached
Mem: 249 66 182 0 0 11
-/+ buffers/cache: 55 194
Swap: 511 0 511
再来运行free命令,会发现现在的used为66MB,free为182MB,buffers为0MB,cached为11MB。那么有效的释放了buffer和cache。
有关/proc/sys/vm/drop_caches的用法在下面进行了说明
/proc/sys/vm/drop_caches (since Linux 2.6.16)
Writing to this file causes the kernel to drop clean caches,dentries and inodes from memory, causing that memory to become free.
To free pagecache, use echo 1 & /proc/sys/vm/drop_
to free dentries and inodes, use echo 2 & /proc/sys/vm/drop_
to free pagecache, dentries and inodes, use echo 3 & /proc/sys/vm/drop_caches.
Because this is a non-destructive operation and dirty objects are not freeable, the user should run sync first.
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:7210次
排名:千里之外
原创:30篇
转载:11篇
(3)(20)(18)Windows释放内存的最简单方法是什么
作者:佚名
字体:[ ] 来源:互联网 时间:06-20 17:09:59
有时候有些程序关闭了但是依旧占用Windows的内存而无法释放,时间长了导致Windows操作系统变得十分缓慢。
那么我们如何释放内存高速缓存而解决占用的问题呢?其实只需要Windows7自身的一个命令即可实现。
开始 -& 运行,输入下面的命令:
%windir%\system32\rundll32.exe advapi32.dll,ProcessIdleTasks
点击&确定&按钮。
注:此命令支持Vista和Win7系统。
大家感兴趣的内容
12345678910
最近更新的内容

我要回帖

更多关于 js 手动释放内存 的文章

 

随机推荐