linux释放内存

首先我们可能会用free 去查看内存的使用率,它应该是这样的

[[email protected] ~]# free -m
            total       used       free     shared    buffers     cached
Mem:         32040      31707        332          0        498      27649
-/+ buffers/cache:       3559      28480
Swap:        16087          0      16087

##实际上在一个进程结束后其内存是会被释放的,但是内核没有立刻把内存收集到free中,而是存放在cache或buffers当中,以提高系统的IO效率,cache和buffered的内存是由内核进行动态的配置管理,如果系统的free大小不够的时候,系统会自动释放cache buffer的内存给程序使用!##

##证:如果说used占用很多,free很少,而且cache和buffer占的比例也很小,那表明内存是不够用了##


1

2

3

4

5

6

7

8

9


[root@ipython ~]# free -m

total       used       free     shared    buffers     cached

Mem:         32040      31707        332          0        498      27649

-/+ buffers/cache:       3559      28480

Swap:        16087          0      16087

##实际上在一个进程结束后其内存是会被释放的,但是内核没有立刻把内存收集到free中,而是存放在cache或buffers当中,以提高系统的IO效率,cache和buffered的内存是由内核进行动态的配置管理,如果系统的free大小不够的时候,系统会自动释放cache buffer的内存给程序使用!##

##证:如果说used占用很多,free很少,而且cache和buffer占的比例也很小,那表明内存是不够用了##

当然,如果你仍需要看到free比较多,你可以尝试这样

1、使用sync命令将所有未写的系统缓存区write to disk,包含已修改的i node、已延迟的块I\O和读写映射
[[email protected] ~]# sync

2、粗暴清理
[[email protected] ~]# cat /proc/sys/vm/drop_caches
0
##可以看到默认是0,drop_caches提供了三个选项操作##
1 清空页缓存   2 清空inode和目录树缓存  3 清空所有的缓存

##清空缓存页##
[[email protected] ~]# echo "1">/proc/sys/vm/drop_caches

##再来看看##
[[email protected] ~]# free -m
            total       used       free     shared    buffers     cached
Mem:         32040       2564      29475          0          0         40
-/+ buffers/cache:       2524      29515
Swap:        16087          0      16087


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18


1、使用sync命令将所有未写的系统缓存区write to disk,包含已修改的i node、已延迟的块I\O和读写映射

[root@ipython ~]# sync

2、粗暴清理

[root@ipython ~]# cat /proc/sys/vm/drop_caches

0

##可以看到默认是0,drop_caches提供了三个选项操作##

1 清空页缓存   2 清空inode和目录树缓存  3 清空所有的缓存

##清空缓存页##

[root@ipython ~]# echo "1">/proc/sys/vm/drop_caches

##再来看看##

[root@ipython ~]# free -m

total       used       free     shared    buffers     cached

Mem:         32040       2564      29475          0          0         40

-/+ buffers/cache:       2524      29515

Swap:        16087          0      16087

时间: 2024-08-24 18:07:56

linux释放内存的相关文章

Linux释放内存脚本

vi recover_mem.sh #!/bin/bash #系统分配的区总量 mem_total=`free -m |grep Mem | awk '{print $2}'` #当前剩余的free大小 mem_free=`free -m |grep Mem | awk '{print $4}'` #当前已使用的used大小 mem_used=`free -m |grep Mem | awk '{print $3}'` if (($mem_used !=0)); then #如果已被使用,则计算

Linux 释放内存脚本

新建shell文档 vi /opt/free.sh 可用内存小于400M的时候, 将会进行释放 #!/bin/bash sync free -m |grep -i mem |awk '{if($4 < 400){ printf("3") > "/proc/sys/vm/drop_caches"}}'; 计划运行 crontab -e 10 * * * * /opt/free.sh

CentOS7清理yum缓存和释放内存方法

清理yum缓存 清理yum缓存使用yum clean 命令,yum clean 的参数有headers, packages, metadata, dbcache, plugins, expire-cache, rpmdb, all yum clean headers #清理/var/cache/yum的headers yum clean packages #清理/var/cache/yum下的软件包 yum clean metadata ... Linux释放内存 释放网页缓存(To free

Linux 下释放内存,swap交换区缓存

关于内存耗尽的总结: 1)在进程收到OOM之前,内核将刷新文件系统的cache来释放空间. 2)将交换区的页面移到磁盘上. 3)当内存变少时,虚拟性使每个进程通过交换区来做简单的上下文环境切换. 4)当进程消耗尽交换内存后,才会引发out-of-memory(OOM)来kill那些进程. 所以,我们还是有必要来手动进行Linux下释放内存的操作,其实也就是释放缓存的操作了. 要达到释放缓存的目的,我们首先需要了解下关键的配置文件/proc/sys/vm/drop_caches.这个文件中记录了缓

Linux 手动释放内存

Linux 用了一段时间,内存就爆满了,Swap也开始使用,因为linux设计读取的数据都会缓存在内存里面,这样对于频繁读取的应用可以减少IO消耗,但像我这种不是SSD硬盘的PC用户,打开应用就感觉一卡一卡的,烦都烦死啦,不得不手动清除内存的数据(理论上linux会自动释放内存). 其实一条命令就搞定了:echo 3 > /proc/sys/vm/drop_caches 但在执行这条命令之前请先sync,把缓存的数据写到磁盘里面,要不有缓冲写数据,就有得你哭了^-^ 3是释放所有内存,默认是0,

RHCA RH442实战系列(二)之Linux buffer内存释放

1. 说明   Linux的内核负责硬件管理,资源调度,进程管理,和资源管理等相关工作,其中内存资源管理做为kernel的一项非常重要的工作.kernel在处理文件时,如打开一个文件,会将文件的元数据信息,即文件名,inode等信息记录在buffer中,后续重复读取相同的文件,则直接冲buffer中读取,这样的机制能够提高速度,此外,对于文件的内容,将会记录在cache中保存,对于buffer和cache,内存会有自动清理的机制,如果buffer和cache一直无法释放,可能导致的原因有:内存泄

linux下怎样释放内存、swap分区满的情况

在Linux系统下,我们一般不需要去释放内存,因为系统已经将内存管理的很好.但是凡事也有例外,有的时候内存会被缓存占用掉,导致系统使用SWAP空间影响性能,此时就需要执行释放内存(清理缓存)的操作了. Linux系统的缓存机制是相当先进的,他会针对dentry(用于VFS,加速文件路径名到inode的转换).Buffer Cache(针对磁盘块的读写)和Page Cache(针对文件inode的读写)进行缓存操作.但是在进行了大量文件操作之后,缓存会把内存资源基本用光.但实际上我们文件操作已经完

Linux手动释放内存

手动释放内存 1.sync将内存中的缓存写入磁盘 2.  to free pagecache, use echo 1 > /proc/sys/vm/drop_caches; to free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches;  to free pagecache, dentries and inodes, use echo 3 >/proc/sys/vm/drop_caches.

linux 释放cache 内存

释放内存前 # free -m             total       used       free     shared    buffers     cachedMem:          7831       7704        127          0        256       6813-/+ buffers/cache:        634       7197Swap:         7999          0       7999 sync &&am