`

Linux 查看内存(free buffer cache)

阅读更多

Linux下如何查内存信息,如内存总量、已使用量、可使用量。
经常使用Windows操作系统的朋友,已经习惯了如果空闲的内存较多,心里比较踏实。
当使用Linux时,可能觉的Linux物理内存很快被用光(如频繁存取文件后),当程序结束后内存没有被释放。空闲内存少的可怜,心里总不踏实。
Linux操作系统的内存管理方式与Windows不同,Linxu会尽量多的利用内存,让尽可能多的内存参与工作(做cache)以提高性能。
所以你看到的空闲内存总是很小,当你的程序需要更多内存时,Linxu系统会把做cache的内存还给你,让你来运行你的程序。

图1

 

free -m :查看内存情况,单位为MB。
total 内存总数
used 已经使用的内存数(我的程序使用内存数量+系统缓存使用的内数量)
free 空闲的物理内存数(是真正的空闲,未被任何程序占用)
shared 多个进程共享的内存总额
buffers 磁盘缓存(Buffer Cache)的大小(可提高系统I/O调用的性能)
cached  磁盘缓存(Page Cache)的大小(可提高系统I/O调用的性能)
-buffers/cache 表示已被我们的程序使用的内存数,计算方法:used - buffers - cached
+buffers/cache 表示还可已被我使用的内存数,计算方法:free + buffers + cached

操作系统目前可用内存总量=free + buffers + cached,上图是1155M

buffers是用来给块设备做的缓冲大小、buffers是用来存储目录里面有什么内容,权限等等
cached用来给文件做缓冲,用来记忆我们打开的文件.


即使你的程序运行结束后,Cache Memory也不会自动释放。
这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存(free)会很少。
其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以你不必担心没有内存可用。
如果你希望手动去释放Cache Memory也是有办法的。

手动释放缓存
---------------------------------------
/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存。操作如下:

cat /proc/sys/vm/drop_caches   查看默认值

先手动执行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

再来运行free命令。可以看出来有效的释放了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_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 are not freeable, the user should run sync first



通过Windows任务管理器查看内存--Win2008/Win7
---------------------------------------------------------------------------
通过任务管理器有“性能”选项卡,可查看“物理内存使用率”。
可直接查看物理内存使用率的百分比。
由于物理内存不够时,会把当前不活动程序挤到“虚拟内存”上,让出物理内存给当前程序使用,
所以一直都无法看到物理内存使用率达到100%,只会看到“页面文件(图中叫‘提交’)”的量在一直增长。
图2



正方型红框内:已使用的物理内存(不含虚拟内存)
物理内存--总数:物理内存总量
物理内存--已缓存:操作系统的“磁盘缓存”占用的内存
物理内存--可用:你还可以使用的内存,是(空闲+已缓存),是不是和Linux很像
物理内存--空闲:真正空闲的物理内存

系统--提交:页面文件使用率,页面文件(PF)总量=物理内存+虚拟内存

 


通过Windows任务管理器查看内存--Win2003/Win Xp
---------------------------------------------------------------------------
通过任务管理器有“性能”选项卡,可查看“页面文件使用率(PF)”。
无法直接查看内存使用量的百分比,查看不如win 7方便。
页面文件(PF)总量=物理内存+虚拟内存

图3

  • 大小: 15.6 KB
  • 大小: 71.1 KB
  • 大小: 65.2 KB
分享到:
评论

相关推荐

    linux内存中buffer与cache的区别

    ### Linux内存中Buffer与Cache的区别 #### 概述 Linux操作系统在管理内存资源时采用了高效且灵活的方法。当我们使用`free`命令查看系统的内存使用情况时,可能会注意到一个现象:即使系统似乎没有运行太多的应用...

    Linux内存buffer和cache的区别

    ### Linux内存管理中的Buffer与Cache区别详解 #### 一、引言 在现代操作系统中,内存管理是一项极其重要的任务,特别是在Linux这样的多用户多任务环境中。Linux系统在内存管理方面采取了许多高效的策略来提高系统...

    Linux操作系统中内存buffer和cache的区别.docx

    在 Linux 操作系统中,free 命令可以显示系统的内存使用情况,其中包括 buffer 和 cache 的数量。通过 free 命令,我们可以看到系统的总物理内存、已分配的内存、未被分配的内存、缓存的数量等信息。 Buffer 和 ...

    Linux操作系统中内存buffer和cache的区别.pdf

    `free`命令是Linux中用来查看系统内存使用情况的一个实用工具。通过`free`命令,我们可以获取到关于物理内存、缓存、以及交换空间的使用情况。下面是对`free`命令输出结果的解读: 1. **Mem**: 表示物理内存的统计...

    linux下释放cache内存

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

    linux内存中cache分析

    Linux提供了一些命令工具来查看和管理内存缓存。例如,`free`命令可以显示系统内存的状态,包括总内存、已用内存、空闲内存以及缓存和缓冲区占用的内存。`/proc/meminfo`文件提供了更详细的内存信息,包括缓存和缓冲...

    查看linux系统内存使用情况.pdf

    Linux系统为了提高文件读取性能,会将一部分内存作为缓存(Cache)和缓冲区(Buffer)。这些缓存和缓冲区在系统中扮演着非常重要的角色,它们可以帮助减少对磁盘的访问次数,从而提高系统性能。当应用程序需要更多...

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

    Linux还采用了Buffer Cache和Page Cache这两种主要的缓存机制,以优化磁盘和内存的交互。Buffer Cache针对磁盘块的读写,而Page Cache针对文件inode的读写。这两种缓存极大地提高了系统性能,减少了I/O操作的延迟。 ...

    手工释放linux内存.pdf

    Linux内存管理机制的一个显著特点是充分利用空闲内存作为缓存(包括Buffer Cache和Page Cache)。这样做能够极大地提高磁盘I/O效率,从而提升应用程序的整体性能。但是,这种设计也可能会让初学者感到困惑,尤其是在...

    linux可用内存足够为什么还用swap.docx

    这里需要注意的是,Linux系统中的“可用内存”(available)是一个更为综合的指标,它包括了真正意义上的空闲内存(free)加上部分buffer/cache可以快速释放出来的内存量。从上述数据可以看出,尽管buffer/cache占用...

    linux下内存管理

    5. 缓存和缓冲区(Cache and Buffer):Linux为了提高I/O性能,会在内存中创建缓冲区来存放磁盘数据。同时,文件系统使用缓存来存储最近访问过的文件内容,减少磁盘读写。 6. 交换空间(Swap Space):当物理内存...

    Linux性能优化-内存篇_WEL.pdf

    Linux系统提供了多种缓存机制,例如,Page Cache、Buffer Cache等。 3. 性能优化工具 3.1 top命令 top命令是一个常用的性能优化工具,可以实时显示系统的CPU、内存、进程等信息。 3.2 vmstat命令 vmstat命令...

    手工释放linux内存_proc sys vm drop_caches

    这在使用free命令查看内存状况时表现得尤为明显,其中的cached数字会变得相当大。 Linux采用了几种主要的缓存机制,包括Buffer Cache和Page Cache。Buffer Cache针对磁盘块的读写,而Page Cache则针对文件inode的...

    Linux 通用块设备层基础之buffer_head .

    通过`kmem_cache_alloc()`和`kmem_cache_free()`函数,内核能够高效地分配和回收`buffer_head`对象,这不仅提高了内存使用效率,也简化了内核代码的设计。 #### 总结 `buffer_head`是Linux内核中用于描述和管理块...

    linux内存管理doc版

    8. **物理内存和交换空间的统计与监控**:Linux提供了工具如`free`, `top`, `vmstat`, 和 `/proc/meminfo`,用于查看和监控系统的内存使用情况,帮助管理员分析和优化系统性能。 9. **OOM Killer**:当系统面临内存...

    手工释放linux内存_procsysvmdrop_caches.pdf

    Linux 操作系统为了提高文件读取效率,采取了两种主要 Cache 方式:Buffer Cache 和 Page Cache。前者针对磁盘块的读写,后者针对文件 inode 的读写。这些 Cache 有效缩短了 I/O 系统调用(比如 read、write、...

    Linux的free命令来显示系统中空闲和已使用的内存.docx

    而`buffer`和`cache`的使用情况是评估内存利用率的重要指标,如果它们的空闲空间过低,可能意味着系统需要更多的内存资源。 `free`命令的数据来源是`/proc/meminfo`,这是一个虚拟文件系统,它反映了当前系统的实时...

    《深入理解linux内存管理》学习笔记 Linux 高阶学习

    同时,Linux的缓冲区缓存(Buffer Cache)和页面缓存(Page Cache)提高了磁盘I/O效率。 6. **内存压榨(OOM,Out-Of-Memory)**:当系统完全耗尽内存时,内核会触发OOM killer,选择并终止某些进程以释放内存。...

    熟悉Linux内存管理.pdf

    输出信息包括总内存(Total)、已使用(Used)、空闲(Free)、共享(Shared)、缓冲(Buffer)和缓存(Cache)等。通过不同的参数,如`-h`、`-m`或`-s`,可以以更易读的方式或持续监控内存状态。 另一个有用的命令是`vmstat`,...

Global site tag (gtag.js) - Google Analytics