Linux系统中的内存清理和释放命令归纳

来源:本网整理

1 先写一个脚本存为一个文件,比如 clearmem.sh#!/bin/bashsync

  # 清理步骤

这个是内存机制,Linux不会主动释放内存。以前在windows下面有一个内存清理工具。而这些工作在

  # 清理前内存使用情况

你是说sync命令?那个只是把在内存中需要写入的数据写入而已。

  代码如下:

 要达到释放缓存的目的,我们首先需要了解下关键的配置文件/proc/sys/vm/drop_cach

  free -m

1、删除无用的安装包  在之前的Linux实验室中,笔者介绍过apt-get及其相似命令,而在ap

  # 开始清理

说说我的二次剖腹产经历预产期是2.25号,但是因为一胎是剖腹产的原因。而且两胎只隔了2年,所以二胎果断选择剖腹产。说说二胎剖腹产的经过,我想是很多二胎妈妈所关注的问题。由于我孕期吃到165斤。我不敢再等了。怕子宫太薄,也怕自然反应再受罪。所以在38+3也就是2月14日决定剖腹产。前一天2.13办理了住院。然后发了产检单。做了内检和妇科检查。还抽了两管血。中午做了最后的彩超。然后就进了病房。不会让你再随意走动。期间护士会不时的让我胎心监护或者听胎心。心情又紧张又激动。晚饭过后(11点后不能进食)。护士过来给我备皮给我皮试。在临睡的时候又是听胎心。反正前一晚我真的基本没有怎么睡。因为太紧张了。第二

  代码如下:

 要达到释放缓存的目的,我们首先需要了解下关键的配置文件/proc/sys/vm/drop_cach

  echo 1 > /PRoc/sys/vm/drop_caches

答案显而易见,CBA最强球队会被NBA最弱球队打爆。这不是崇洋媚外,只是实事求是。有一点或许可以最直接的体现出这种差距。近几年来,辽宁队外线哈德森几乎算得上是CBA最为出色的外援之一了。每年休赛季返回美国,哈德森均积极寻找为NBA球队效力的机会。但最终,哈德森所得到的命运只有三种,短约、下放、裁员。由此可见,CBA与NBA的差距是多么大。作为CBA新科MVP,丁彦雨航为小牛出战夏季联赛,也不过只是场均得分只有8分上下的角色球员。要知道,丁彦雨航身边的大部分队友均来自于发展联盟。事实上,每一位进入NBA的球员,都是千挑万选,层层考察出来的。不管是通过选秀,还是其他途径进入NBA,那都是具备响当当

  # 清理后内存使用情况

那么疼痛来源于哪里呢?生活,在生活中,我们不正确的走路,不正确跑步,爬楼梯,包括蹲下来系鞋带,那么这些您如果都做错的话,它会慢慢导致您的膝关节疼痛,接下来,我就给你讲解一下您生活的蹲,是对还是错的,首先有很多人群蹲下来,是用膝关节承担我们人体的重量,但是我们在下蹲时,如果每次都用膝关节承担人体重量的话,那一年,两年,十年以后呢,你关节的损坏的程度就是您的疼痛病因,那么如何去解决疼痛呢,是靠药膏,还是针灸……其实这都不是解决您疼痛的最根本方法,,那么如何改善,那就是改边您的运动模式,如果您每次下蹲都在损伤膝关节,那么您知道在生活中有蹲了多少次嘛?每天我们蹲下来上厕所,蹲下来系鞋带,穿鞋,,每次都

  代码如下:

 要达到释放缓存的目的,我们首先需要了解下关键的配置文件/proc/sys/vm/drop_cach

  free -m

1、删除无用的安装包  在之前的Linux实验室中,笔者介绍过apt-get及其相似命令,而在ap

  完成!

  # 查看内存条数命令:

  复制代码

  代码如下:

 要达到释放缓存的目的,我们首先需要了解下关键的配置文件/proc/sys/vm/drop_cach

  dmidecode | grep -A16 "Memory Device$"

  To free pagecache:

  echo 1 > /proc/sys/vm/drop_caches

  To free dentries and inodes:

  echo 2 > /proc/sys/vm/drop_caches

  To free pagecache, dentries and inodes:

  echo 3 > /proc/sys/vm/drop_caches

  sync

  # 释放前最好sync一下,防止丢数据。因为linux的内核机制,一般情况下不需要特意去释放已经使用的cache。这些cache起来的内容可以增加文件以及的读写速度。

  # 先说下free命令怎么看内存

  代码如下:

 要达到释放缓存的目的,我们首先需要了解下关键的配置文件/proc/sys/vm/drop_cach

  $free

  total used free shared buffers cached

  Mem: 1535052 918928 616124 0 2512 82964

  -/+ buffers/cache: 833452 701600

  Swap: 0 0 0

  # 第一行用全局角度描述系统使用的内存状况:

  total——总物理内存

  used——已使用内存,一般情况这个值会比较大,因为这个值包括了cache+应用程序使用的内存

  free——完全未被使用的内存

  shared——应用程序共享内存

  buffers——缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)

  cached——缓存,用于已打开的文件

  total = used + free

  used = buffers+cached (maybe add shared also)

  第二行描述应用程序的内存使用:

  前个值表示-buffers/cache——应用程序使用的内存大小,used减去缓存值

  后个值表示+buffers/cache——所有可供应用程序使用的内存大小,free加上缓存值

  -buffers/cache=used-buffers-cached

  +buffers/cache=free+buffers+cached

  第三行表示swap的使用:

  used——已使用

  free——未使用

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

  echo 3 > /proc/sys/vm/drop_caches

  cat /proc/sys/vm/drop_caches

  3

  !将/proc/sys/vm/drop_caches值设为3

  # 有关/proc/sys/vm/drop_caches的用法在下面进行了说明

  代码如下:

 要达到释放缓存的目的,我们首先需要了解下关键的配置文件/proc/sys/vm/drop_cach

  /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_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.

  Because this is a non-destructive Operation and dirty objects

  # 原文链接:http://levi.cg.am/?p=3224

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

Linux下如何释放内存

首先,查看/proc/sys/vm/drop_caches的值

[root@server test]# cat /proc/sys/vm/drop_caches

0

值默认为0

然后,运行sync命令

[root@server test]# sync

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

最后,输入手动释放内存的命令

[root@server test]# echo 1 > /proc/sys/vm/drop_caches

drop_caches的值可以是0-3之间的数字,代表不同的含义:

0:不释放(系统默认值)

1:释放页缓存

2:释放dentries和inodes

3:释放所有缓存

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

echo 0 >/proc/sys/vm/drop_caches

free -m #看内存是否已经释放掉了。

如果我们需要释放所有缓存,就输入下面的命令:

[root@server test]# echo 3 > /proc/sys/vm/drop_caches

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 和读写映射文件。否则在释放缓存的过程中,可能会丢失未保存的文件。

#sync

接下来,我们需要将需要的参数写进/proc/sys/vm/drop_caches文件中,比如我们需要释放所有缓存,就输入下面的命令:

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

此指令输入后会立即生效,可以查询现在的可用内存明显的变多了。

要查询当前缓存释放的参数,可以输入下面的指令:

#cat /proc/sys/vm/drop_caches

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

Linux释放内存的命令:

sync

echo 1 > /proc/sys/vm/drop_caches

drop_caches的值可以是0-3之间的数字,代表不同的含义:

0:不释放(系统默认值)

1:释放页缓存

2:释放dentries和inodes

3:释放所有缓存

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

echo 0 >/proc/sys/vm/drop_caches

free -m #看内存是否已经释放掉了。

如果我们需要释放所有缓存,就输入下面的命令:

echo 3 > /proc/sys/vm/drop_caches

######### Linux释放内存的相关知识 ###############

在Linux系统下,我们一般不需要去释放内存,因为系统已经将内存管理的很好。但是凡事也有例外,有的时候内存会被缓存占用掉,导致系统使用SWAP空 间影响性能,例如当你在linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。,此时就需 要执行释放内存(清理缓存)的操作了。

Linux系统的缓存机制是相当先进的,他会针对dentry(用于VFS,加速文件路径名到inode的转换)、Buffer Cache(针对磁盘块的读写)和Page Cache(针对文件inode的读写)进行缓存操作。但是在进行了大量文件操作之后,缓存会把内存资源基本用光。但实际上我们文件操作已经完成,这部分 缓存已经用不到了。这个时候,我们难道只能眼睁睁的看着缓存把内存空间占据掉吗?所以,我们还是有必要来手动进行Linux下释放内存的操作,其实也就是 释放缓存的操作了。/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段.也就是说可以通过修改 /proc中的文件,来对当前kernel的行为做出调整.那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存。要达到释 放缓存的目的,我们首先需要了解下关键的配置文件/proc/sys/vm/drop_caches。这个文件中记录了缓存释放的参数,默认值为0,也就 是不释放缓存。

一般复制了文件后,可用内存会变少,都被cached占用了,这是linux为了提高文件读取效率的做法:为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。"

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

[root@fcbu.com ~]# free -m

total used free shared buffers cached

Mem: 7979 7897 82 0 30 3918

-/ buffers/cache: 3948 4031

Swap: 4996 438 4558

第一行用全局角度描述系统使用的内存状况:

total 内存总数

used 已经使用的内存数,一般情况这个值会比较大,因为这个值包括了cache 应用程序使用的内存

free 空闲的内存数

shared 多个进程共享的内存总额

buffers 缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)

cached 缓存,用于已打开的文件

第二行描述应用程序的内存使用:

-buffers/cache 的内存数:used - buffers - cached

buffers/cache 的内存数:free buffers cached

前个值表示-buffers/cache 应用程序使用的内存大小,used减去缓存值

后个值表示 buffers/cache 所有可供应用程序使用的内存大小,free加上缓存值

第三行表示swap的使用:

used 已使用

free 未使用

可用的内存=free memory buffers cached。

为什么free这么小,是否关闭应用后内存没有释放?

但实际上,我们都知道这是因为Linux对内存的管理与Windows不同,free小并不是说内存不够用了,应该看的是free的第二行最后一个值:-/ buffers/cache: 3948 4031 ,这才是系统可用的内存大小。

实际项目中的经验告诉我们,如果因为是应用有像内存泄露、溢出的问题,从swap的使用情况是可以比较快速可以判断的,但free上面反而比较难查看。我觉得既然核心是可以快速清空buffer或cache,但核心并没有这样做(默认值是0),我们不应该随便去改变它。

一般情况下,应用在系统上稳定运行了,free值也会保持在一个稳定值的,虽然看上去可能比较小。当发生内存不足、应用获取不到可用内存、OOM错 误等问题时,还是更应该去分析应用方面的原因,如用户量太大导致内存不足、发生应用内存溢出等情况,否则,清空buffer,强制腾出free的大小,可 能只是把问题给暂时屏蔽了,所以说一般情况下linux都不用经常手动释放内存。

linux如何清理内存

你这个不是内存不足啊, 是硬盘没地方了

你df 一下

看看是不是硬盘的使用率达到100%了。

把100%的分区追加一些空间吧。

你用哪些命名是把内存的东西强制写回到硬盘。

硬盘都没地方了,怎么写啊。追问/dev/sdb6

/dev//sr0

这两个显示已经100%了...

具体怎么做好说吗?基础知识比较差,也是边摸索边用的...追答出现问题了上网找一找, 一般都有答案的。

加油!

如何手动释放Linux内存

Linux释放内存的命令:

sync

echo 1 > /proc/sys/vm/drop_caches

drop_caches的值可以是0-3之间的数字,代表不同的含义:

0:不释放(系统默认值)

1:释放页缓存

2:释放dentries和inodes

3:释放所有缓存

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

echo 0 >/proc/sys/vm/drop_caches

free -m #看内存是否已经释放掉了。

如果我们需要释放所有缓存,就输入下面的命令:

echo 3 > /proc/sys/vm/drop_caches

######### Linux释放内存的相关知识 ###############

在Linux系统下,我们一般不需要去释放内存,因为系统已经将内存管理的很好。但是凡事也有例外,有的时候内存会被缓存占用掉,导致系统使用SWAP空 间影响性能,例如当你在linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。,此时就需 要执行释放内存(清理缓存)的操作了。

Linux系统的缓存机制是相当先进的,他会针对dentry(用于VFS,加速文件路径名到inode的转换)、Buffer Cache(针对磁盘块的读写)和Page Cache(针对文件inode的读写)进行缓存操作。但是在进行了大量文件操作之后,缓存会把内存资源基本用光。但实际上我们文件操作已经完成,这部分 缓存已经用不到了。这个时候,我们难道只能眼睁睁的看着缓存把内存空间占据掉吗?所以,我们还是有必要来手动进行Linux下释放内存的操作,其实也就是 释放缓存的操作了。/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段.也就是说可以通过修改 /proc中的文件,来对当前kernel的行为做出调整.那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存。要达到释 放缓存的目的,我们首先需要了解下关键的配置文件/proc/sys/vm/drop_caches。这个文件中记录了缓存释放的参数,默认值为0,也就 是不释放缓存。

一般复制了文件后,可用内存会变少,都被cached占用了,这是linux为了提高文件读取效率的做法:为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。"

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

[root@fcbu.com ~]# free -m

total used free shared buffers cached

Mem: 7979 7897 82 0 30 3918

-/ buffers/cache: 3948 4031

Swap: 4996 438 4558

第一行用全局角度描述系统使用的内存状况:

total 内存总数

used 已经使用的内存数,一般情况这个值会比较大,因为这个值包括了cache 应用程序使用的内存

free 空闲的内存数

shared 多个进程共享的内存总额

buffers 缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)

cached 缓存,用于已打开的文件

第二行描述应用程序的内存使用:

-buffers/cache 的内存数:used - buffers - cached

buffers/cache 的内存数:free buffers cached

前个值表示-buffers/cache 应用程序使用的内存大小,used减去缓存值

后个值表示 buffers/cache 所有可供应用程序使用的内存大小,free加上缓存值

第三行表示swap的使用:

used 已使用

free 未使用

可用的内存=free memory buffers cached。

为什么free这么小,是否关闭应用后内存没有释放?

但实际上,我们都知道这是因为Linux对内存的管理与Windows不同,free小并不是说内存不够用了,应该看的是free的第二行最后一个值:-/ buffers/cache: 3948 4031 ,这才是系统可用的内存大小。

实际项目中的经验告诉我们,如果因为是应用有像内存泄露、溢出的问题,从swap的使用情况是可以比较快速可以判断的,但free上面反而比较难查看。我觉得既然核心是可以快速清空buffer或cache,但核心并没有这样做(默认值是0),我们不应该随便去改变它。

一般情况下,应用在系统上稳定运行了,free值也会保持在一个稳定值的,虽然看上去可能比较小。当发生内存不足、应用获取不到可用内存、OOM错 误等问题时,还是更应该去分析应用方面的原因,如用户量太大导致内存不足、发生应用内存溢出等情况,否则,清空buffer,强制腾出free的大小,可 能只是把问题给暂时屏蔽了,所以说一般情况下linux都不用经常手动释放内存。

  • 本文相关:
  • 虚拟机上网设置
  • linux系统怎么截图?
  • 查看Linux下系统资源占用常用命令
  • Ubuntu 连不上网怎么办?
  • linux定时运行命令
  • 如何在RAID软磁盘阵列上搭建linux系统
  • linux删除用户组和inux添加用户组
  • 在Linux桌面上随意使用Windows文档的方法
  • Linux远程登录和无密码登录方法
  • Linux中常用的压缩和解压缩命令汇总
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved