[转帖]Linux下清理内存和Cache方法见下文:

linux,清理,内存,cache,方法,见下文 · 浏览次数 : 0

小编点评

**Linux 下清理内存和 Cache 方法** **/proc/sys/vm/drop_caches** * 经常的文件访问会导致系统的 Cache 使用量大增。 * 通过使用 `sync` 命令,可以强制将内存中的脏数据写回磁盘,释放内存空间。 * `sync` 命令可以用于清理系统缓存,释放磁盘空间。 **使用 `sync` 命令的优点:** * 速度更快,因为它直接写入磁盘。 * 避免内存泄漏。 **使用 `sync` 命令的缺点:** * 只适用于内存中的脏数据。 * 如果文件系统已满,则可能无法进行清理。 **建议:** * 在使用 `sync` 命令之前,确保设备已空闲。 * 使用 `-v`选项以获取详细的信息。 * 可以根据硬件状况调整 `sync` 命令的间隔时间。

正文

https://www.cnblogs.com/the-tops/p/8798630.html

 

暂时目前的环境处理方法比较简单:

在root用户下添加计划任务:

*/10 * * * * sync;echo 3 > /proc/sys/vm/drop_caches;     

每十分钟执行一次,先将脏数据写回硬盘,之后释放缓存页和入口信息和节点信息等;

-------------------参考链接:

http://man.linuxde.net/sync

https://www.linuxidc.com/Linux/2010-03/24939.htm

sync命令

 

sync命令用于强制被改变的内容立刻写入磁盘,更新超块信息。

在Linux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘,以提高系统的运行效率。sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。用户通常不需执行sync命令,系统会自动执行update或bdflush操作,将缓冲区的数据写 入磁盘。只有在update或bdflush无法执行或用户需要非正常关机时,才需手动执行sync命令。

语法

sync(选项)

选项

--help:显示帮助;
 --version:显示版本信息。

buffer与cache

  • buffer:为了解决写磁盘的效率
  • cache:为了解决读磁盘的效率

linux系统为了提高读写磁盘的效率,会先将数据放在一块buffer中。在写磁盘时并不是立即将数据写到磁盘中,而是先写入这块buffer中了。此时如果重启系统,就可能造成数据丢失。

sync命令用来flush文件系统buffer,这样数据才会真正的写到磁盘中,并且buffer才能够释放出来,flush就是用来清空buffer。sync命令会强制将数据写入磁盘中,并释放该数据对应的buffer,所以常常会在写磁盘后输入sync命令来将数据真正的写入磁盘。

如果不去手动的输入sync命令来真正的去写磁盘,linux系统也会周期性的去sync数据。

----------------------

 

Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches


Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches
 

频繁的文件访问会导致系统的Cache使用量大增

$ free -m
total used free shared buffers cached
Mem: 3955 3926 28 0 55 3459
-/+ buffers/cache: 411 3544
Swap: 5726 0 5726

free内存减少到几十兆,系统运行缓慢

运行sync将dirty的内容写回硬盘
$sync

通过修改proc系统的drop_caches清理free的cache
$echo 3 > /proc/sys/vm/drop_caches

drop_caches的详细文档如下:
Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.
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
As this is a non-destructive operation, and dirty objects are notfreeable, the user should run "sync" first in order to make sure allcached objects are freed.
This tunable was added in 2.6.16.

修改/etc/sysctl.conf 添加如下选项后就不会内存持续增加
vm.dirty_ratio = 1
vm.dirty_background_ratio=1
vm.dirty_writeback_centisecs=2
vm.dirty_expire_centisecs=3
vm.drop_caches=3
vm.swappiness =100
vm.vfs_cache_pressure=163
vm.overcommit_memory=2
vm.lowmem_reserve_ratio=32 32 8
kern.maxvnodes=3

上面的设置比较粗暴,使cache的作用基本无法发挥。需要根据机器的状况进行适当的调节寻找最佳的折衷。

---------------------------------->人生犹如负重致远,不可急于求成。 自律使人自由!

与[转帖]Linux下清理内存和Cache方法见下文:相似的内容:

[转帖]Linux下清理内存和Cache方法见下文:

https://www.cnblogs.com/the-tops/p/8798630.html 暂时目前的环境处理方法比较简单: 在root用户下添加计划任务: */10 * * * * sync;echo 3 > /proc/sys/vm/drop_caches; 每十分钟执行一次,先将脏数据写回

[转帖]Linux下fio磁盘的性能工具的部署和使用

介绍 fio 功能强大的性能测试工具, 具备多线程、报告清晰、多种引擎。 没有任何基础的,建议看完fio介绍!后继续阅读。 接下来,以ubuntu为例展示安装和使用过程。 准备条件 fio 各个版本下载各个os下fio依赖包 libaio依赖库libaio centos 备用链接 安装 安装liba

[转帖]Linux下lshw,lsscsi,lscpu,lsusb,lsblk硬件查看命令

注意:如有提示命令找不到command not found,请自行安装所需命令。 1、lshw查看所有硬件摘要信息 下面命令可以查看所有硬件摘要信息,并输出成一个html文件,把此html文件导出到电脑上,直接打开,可以清楚的看到硬件信息: [root@localhost /]# lshw -htm

[转帖]linux下 进程io队列,IO队列和IO调度

IO体系概览 先看看本文主题IO调度和IO队列处于整个IO体系的哪个位置,这个IO体系是非常重要的,了解IO体系我们可以对整个IO过程有个全面的认识。虽然一下两下并不清楚IO体系各个部分的细节,但是我们总是能从这儿找到脉络。知道什么问题在什么位置,这个是解决问题的时候最关键的。任何所谓的专家都不太可

[转帖]磁盘测试----fio

https://www.bbsmax.com/A/WpdKAgmnJV/ 测试前提 我们在进行测试时,都会分清楚: 测试对象:要区分硬盘、SSD、RAID、SAN、云硬盘等,因为它们有不同的特点 测试指标:IOPS和MBPS(吞吐率),下面会具体阐述 测试工具:Linux下常用Fio、dd工具, W

[转帖]linux下 安装了中文版本的,造成sqlplus 连接时出现了乱码

https://blog.51cto.com/u_11529070/3607380 linux下 安装了中文版本的,造成sqlplus 连接时出现了乱码 如图 一开始以为是LANG 变量的问题 后来发现是NLS_LANG的问题 解决方法: export NLS_LANG="AMERICAN_AMER

[转帖]Linux下Shell的for循环语句 第一类:数字性循环

#!/bin/bash for((i=1;i<=10;i++)); do echo $(expr $i \* 3 + 1); done #!/bin/bash for i in $(seq 1 10) do echo $(expr $i \* 3 + 1); done #!/bin/bash for

[转帖]linux下性能测试工具netperf使用

https://www.shuzhiduo.com/A/MyJxX2VpJn/ 一、功能简介 netperf是一款针对网络性能的测试工具,主要基于TCP或UDP的传输。根据应用的不同,可以进行批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式的

[转帖]Linux下用dd命令测试硬盘的读写速度

一、测试写速度: time dd if=/dev/zero of=/tmp/test bs=8k count=1000000 测试结果:565 MB/s 二、测试读速度: time dd if=/tmp/test of=/dev/null bs=8k 测试结果:4.7GB/s 三、测试读写速度: t

[转帖]Linux下 查看 每个进程占用的网络带宽 - NetHogs

https://www.cnblogs.com/xuyaowen/p/NetHogs.html 今天在服务器上进行测试程序,发现网速占用比较大,但不是我的程序。可能是其他同学在下载或者上传数据,所以需要看到底是哪个进程。 这时候使用 iftop, vnstat 等命令不能看出具体是哪个进程占用,因为