`

linux内存cached释放

 
阅读更多
我们用free命令查看系统内存使用情况的时候会发现:
#free -m
             total       used       free     shared    buffers     cached
Mem:         24359      11240      13119          0          0      10706
-/+ buffers/cache:        533      23826
Swap:         4095          0       4095
 
1、total = used + free
2、cached比较大,甚至我遇见过内存剩余只有7M的情况,这个时候cached非常大,基本上接近等于total了,这个时候打开文件或者传输文件的时候可用内存很小,程序可能就会用到交换分区swap了,所以会发现机器速度变慢的情况
 
如何解决这个导致机器变慢的问题呢?
罪魁祸首就是内存都被cached了,free的基本没有了
所以我们应该想想如何把cached内存释放出来
重启机器肯定是可以解决,但是我们肯定是不能用这样的办法
 
释放方法有三种(系统默认值是0,释放之后你可以再改回0值):
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
 
经常使用rsync传输大量数据的朋友可能遇到过类似的情况:开始是传输大量文件过去,到后来传输的数据并不大,但就是很慢很慢,到对边的服务器上看会发现在终端输入命令都不会觉得慢,但看内存使用情况时,发现free的内存很少,几乎接近零了,我觉得可能就是内存都被cached了导致的
 
为什么我们要释放掉cached内存?因为我们用rsync传输大量数据的时候,linux系统将一部分文件的信息缓存在内存中,这样是可以减少频繁使用的文件的磁盘IO时间占用,当我们传完一批文件后,我们要传输另外一批文件过去,是完全不同的文件或者文件的内容发生了变化,内存中缓存的文件也不是我们需要的了,我们需要清空缓存,腾出内存用来传输下一批文件使用,这个时候我们急切的需要看到更多的内存是free状态的。
 
在这样的前提下,我们有必要自己手动清空缓存,腾出更多可用内存来
 
注意:在清空缓存前我们需要在linux系统中执行一下sync命令,将缓存中的未被写入磁盘的内容写到磁盘上



 0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存 
分享到:
评论

相关推荐

    手工释放linux内存.pdf

    ### 手工释放Linux内存详解 #### 一、引言 在Linux环境下,内存管理是一项重要的任务,尤其在服务器环境中更是如此。随着程序的运行,Linux操作系统会利用空闲内存作为缓存,以提高文件读取效率。然而,这也可能...

    linux 内存清理/释放命令总结

    ### Linux内存清理与释放命令详解 #### 概述 Linux作为一种高效的服务器操作系统,在资源管理上有着卓越的表现。尤其是在内存管理方面,Linux系统倾向于利用空闲内存作为缓存,以提高文件系统的读写性能。然而,在...

    Linux下手动释放内存

    ### Linux下手动释放内存 在Linux系统中,内存管理是一个重要的方面,特别是在服务器环境中,合理的内存管理能够提高系统的性能和稳定性。本文将详细介绍如何通过命令手动释放Linux系统的内存,并解释这些命令背后...

    linux下释放cache内存

    #### 一、理解Linux内存管理机制 在Linux系统中,内存管理机制非常高效且复杂。为了提升文件系统访问速度,Linux内核会利用空闲内存来缓存文件数据(称为Page Cache)和其他类型的缓存(如Buffer Cache)。这样做的...

    手工释放linux内存_procsysvmdrop_caches.pdf

    手动释放 Linux 内存 - procsysvmdrop_caches Linux 内存管理是 Linux 操作系统中一个非常重要的部分。在日常使用中,我们经常会遇到物理内存被用光的现象,特别是在频繁存取文件时。这个问题貌似有不少人在问,...

    手工释放linux内存_proc sys vm drop_caches

    释放操作完成后,再次执行free命令,我们会看到可用内存(free)增加了,而被缓存的内存(cached)显著减少,说明内存已经被有效释放。 值得注意的是,释放缓存可能会有性能上的负面影响,因为它会减少操作系统用来...

    cgroup-linux内存资源管理.pdf

    首先,让我们了解Linux内存管理的基础知识。在Linux系统中,内存分为多个部分,包括`buffers`和`cached`,它们是系统用来缓存文件系统和网络数据的。当进程读取或写入文件时,内核会将这些数据存储在缓冲区或高速...

    Linux操作系统中的内存简单计算方式介绍

    本文将介绍Linux内存管理的基本概念,特别是关于缓存的使用以及如何简单计算内存使用情况。 首先,Linux的核心理念是充分利用内存资源,即使在没有活跃进程时,也会将内存用于缓存文件系统数据,包括缓冲区...

    ram.zip_CPU 内存_linux内存

    Linux内存管理有其独特之处,它将物理内存划分为多个部分,如:交换空间、缓存、缓冲区、可用内存等。要查看这些信息,可以使用`free`命令,它会列出总内存、已用内存、空闲内存和交换空间等数据。另外,`/proc/...

    linux下释放经常拷贝文件导致的缓存占用[归类].pdf

    Linux 下释放经常拷贝文件导致的缓存占用 什么是缓存? 缓存是一种机制,用于提高文件读取的性能。当我们频繁地存取文件时,Linux 会将这些文件缓存在内存中,以便下次快速访问。这使得系统性能得到了提高。 缓存...

    嵌入式Linux内存管理之free命令

    缓冲(buffers)和缓存(cached)是Linux内存管理中的两个重要概念,它们都用于提高文件系统的性能: - Buffers主要用作块设备的缓冲,用来存储文件系统的元数据和正在处理的页面信息。 - Cached用于文件内容的缓冲...

    手动释放Linux服务器内存(具体操作步骤)

    在Linux服务器管理中,了解...总的来说,理解Linux内存管理机制以及如何手动释放内存对于服务器维护至关重要。但应谨慎操作,因为过度清理缓存可能会影响性能。通常情况下,让Linux操作系统自动管理内存是最佳实践。

    Linux下应用程序到底使用了多少内存

    这是因为Linux系统会预留一部分内存作为缓冲区(buffers)和缓存(cached)。缓冲区主要用于存储磁盘块,以提高磁盘I/O操作的速度,而缓存则用于存储文件系统的元数据和文件内容,加快文件访问速度。 `free`命令...

    Linux 内存管理

    当物理内存不足时,Linux会将暂时不用的数据移到交换空间,以便释放物理内存供其他程序使用。`swapon -s`会列出所有已配置的交换分区或文件及其状态。 `vmstat`命令提供了关于虚拟内存、进程、CPU活动等的统计信息...

    [linux怎么看内存使用率]linux查看内存使用率.docx

    有些区域,比如匿名内存映射(mmps)和共享内存区域,它们被报告为缓存,但不是被核心直接释放。一般的缓存不映射到进程的地址空间,仅仅是简洁的核心映射,而这些特殊的缓存映射到全部挂接到它们上面的进程。 了解...

    linux下释放经常拷贝文件导致的缓存占用.pdf

    在Linux操作系统中,内存管理是一...综上所述,理解Linux内存管理和缓存机制对于优化系统性能和解决内存占用问题至关重要。适时地清理缓存可以帮助释放资源,尤其是在处理大量文件拷贝等操作后,避免物理内存过度占用。

    在linux查看内存的大小.pdf

    总结起来,监控Linux内存使用不仅包括使用`free`命令获取基本的内存统计,还包括理解不同内存组件的作用,如缓冲区、缓存以及它们如何影响系统性能。通过分析这些信息,可以更好地管理和优化系统的内存资源。

    如何正确查看Linux机器内存使用情况.docx

    首先,我们需要理解Linux内存管理的基本概念。Linux内核采用了一种名为“虚拟内存”的机制,它允许系统将硬盘空间作为内存使用,以扩大可用内存的容量。在这种机制下,内存分为多个部分,包括物理内存(RAM)和交换...

    详解Linux手动释放缓存的方法

    在Linux操作系统中,内存管理是一项复杂且高效的...但同时,也要理解Linux内存管理的机制,避免不必要的操作影响系统的稳定性和效率。通过合理的内存管理和优化,我们可以确保Linux系统在各种工作负载下都能高效运行。

    linux查看内存和CPU详解.pdf

    在Linux操作系统中,管理和监控内存及CPU的使用情况对于系统管理员来说至关重要,这有助于优化系统性能、排查问题以及确保服务的稳定运行。本篇将详细解释如何查看Linux系统的内存和CPU使用情况,以及如何理解相关...

Global site tag (gtag.js) - Google Analytics