- 浏览: 44660 次
- 来自: 杭州
文章分类
最新评论
~$ free
total used free shared buffers cached
Mem: 1025204 981636 43568 0 38244 387808
-/+ buffers/cache: 555584 469620
Swap: 1931256 162948 1768308
也可以通过$watch free看到动态信息
以上为free命令的输出内容,从中可以得到当前系统内存使用情况.系统的可用内存应该看第二行数据,
-buffers/cache=used-buffers-cached
+buffers/cache=free+buffers+cached
因为第一行的used包含了系统使用的buffer及cache,而free则没包含buffer及cache,这部分也是可以使用的部分.
如上所示555584为真正的系统使用内存情况,而469620为系统真正的可用内存情况.
下面介绍buffer与cache的差别:
A buffer is something that has yet to be "written" to disk.
A cache is something that has been "read" from the disk and stored for later use.
buffer:
缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据
的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据
时,速度快的设备的操作进程不发生间断。
cache:
高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于
CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期, Cache中保存
着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调
用,这样就减少了CPU的等待时间,提高了系统的效率。Cache又分为一级Cache(L1 Cache)
和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现
在也都集成在CPU内部,常见的容量有256KB或512KB L2 Cache。
当你读写文件的时候,Linux内核为了提高读写性能与速度,会将文件在内存中进行缓存,
这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会
自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会很少。
其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以你不必担心没有
内存可用。如果你希望手动去释放Cache Memory也是有办法的。
如何释放Cache Memory(缓存内存), 用下面的命令可以释放Cache Memory:
To free pagecache
$sync; echo 1>/proc/sys/vm/drop_caches
To free dentries and inodes:
$sync; echo 2>/proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:
$sync; echo 3>/proc/sys/vm/drop_caches
注意,释放前最好sync一下,防止丢失数据。
free命令中的buffer和cache:(它们都是占用内存):
buffer : 作为buffer cache的内存,是块设备的读写缓冲区
cache: 作为page cache的内存, 文件系统的cache
发表评论
-
fedora系统删除多余内核
2013-01-22 21:32 1761查看本地系统安装的内核版本: $rpm -q ... -
Ubuntu change GNOME to XFCE problem
2012-12-14 16:10 851I'm now experiencing this probl ... -
Signal信号
2012-10-07 12:55 01) SIGHUP 本信号在用户终端连接(正常或非正常)结 ... -
Nginx
2012-09-20 23:38 0nginx (pronounced "engine ... -
Linux 灾难恢复
2012-09-19 21:57 0简介: Linux 发行版本 ... -
close_on_exec标志位
2012-09-06 21:33 2577close_on_exec是一个进程所有文件描述 ... -
Linux进程地址空间的探究解析
2012-08-08 23:35 0我们知道,在32位机器上 linux操作系统中的进程的地址空 ... -
git使用
2012-08-08 23:23 0我认为每个学过Git的人都应该做过类似这种笔记,因为Git命令 ... -
select, poll和epoll的区别
2012-07-31 21:34 0随着2.6内核对epoll的完全支持,网络上很多的文章和 ... -
linux多线程编程
2012-07-28 23:09 0本篇总结POSIX线程。可以用多个线程在单进程环境中执行多个任 ... -
select 和 epoll区别
2012-07-27 23:16 0最近有朋友在面试的时候被问了select 和epoll效率差的 ... -
echo显示变色
2012-07-24 17:07 0先来熟悉一下echo,如下: 名称 ... -
How to create and apply a patch with Git
2012-07-24 13:55 0Git is quite common now ... -
Facebook Folly源代码分析
2012-07-23 21:33 0Folly 是 Facebook 的一个开源C++11组件库, ... -
浅谈GCC预编译头技术
2012-07-23 09:51 919——谨以此文,悼念我 ... -
MySQL索引背后的数据结构及算法原理
2012-07-21 22:37 0转自 http://blog.jobbole.com/2400 ... -
patch文件的制作与使用
2012-07-01 18:43 2184创建补丁文件: 比如一个工程目录为project-o ... -
动态链接库版本管理
2012-06-28 20:24 0一、Linux的动态共享库版本控制实现 li ... -
ulimit命令使用
2012-06-22 03:56 830ulimit: usage: ulimit [-SHacdef ... -
负载均衡工具haproxy安装配置使用
2012-06-18 20:10 930一,什么是haproxy HAProxy提供高可用性、负 ...
相关推荐
### Linux内存中Buffer与Cache的区别 #### 概述 Linux操作系统在管理内存资源时采用了高效且灵活的方法。当我们使用`free`命令查看系统的内存使用情况时,可能会注意到一个现象:即使系统似乎没有运行太多的应用...
### Linux操作系统中内存buffer和cache的区别 #### 一、引言 在Linux操作系统中,内存管理是一项关键的技术,它直接影响到系统的性能和稳定性。本文将详细介绍Linux系统中内存buffer和cache的区别及其工作原理,...
在 Linux 操作系统中,free 命令可以显示系统的内存使用情况,其中包括 buffer 和 cache 的数量。通过 free 命令,我们可以看到系统的总物理内存、已分配的内存、未被分配的内存、缓存的数量等信息。 Buffer 和 ...
### Linux内存管理中的Buffer与Cache区别详解 #### 一、引言 在现代操作系统中,内存管理是一项极其重要的任务,特别是在Linux这样的多用户多任务环境中。Linux系统在内存管理方面采取了许多高效的策略来提高系统...
Linux操作系统中,监控系统资源的使用情况是日常管理的重要一环,其中`free`命令便是用来查看系统内存使用状态的工具。本文将详细介绍`free`命令的使用方法和解析其输出结果,以帮助用户更好地理解系统内存的运行...
在Linux内核中,内存的使用效率通过缓存(Cache)机制得到了显著提升。本篇文章将深入探讨Linux内存中的缓存分析,以及如何利用工具进行理解和管理。 首先,我们来了解Linux内存的基本结构。Linux内存分为物理内存...
为了提升文件系统访问速度,Linux内核会利用空闲内存来缓存文件数据(称为Page Cache)和其他类型的缓存(如Buffer Cache)。这样做的目的是减少磁盘I/O操作,从而提高系统性能。 然而,在某些情况下,用户可能会...
Linux中的`free`命令是一个非常实用的工具,用于监控系统中的内存使用情况,包括空闲、已用、共享、缓存等各项指标。这个命令对于系统管理员来说是必不可少的,因为它可以帮助他们确保服务器的健康运行,及时发现...
#### buffer与cache的区别 - **buffers**: 是指系统用来做块设备的缓冲区大小。当数据写入磁盘时,这些数据会先写入buffers,然后由操作系统决定何时同步到磁盘。 - **cached**: 主要用于存储已经读取过的文件内容,...
* used:表示系统分配给缓存使用的数量(这里的缓存包括 buffer 和 cache) * free:表示未分配的物理内存总数 * shared:表示共享内存 * buffers:系统分配但未被使用的缓冲区大小 2. top 命令 top 命令可以实时...
通过`kmem_cache_alloc()`和`kmem_cache_free()`函数,内核能够高效地分配和回收`buffer_head`对象,这不仅提高了内存使用效率,也简化了内核代码的设计。 #### 总结 `buffer_head`是Linux内核中用于描述和管理块...
linux提供了很多命令来协助我们快速定位到错误,free命令是Linux最常用的命令之一:它可以查看系统的内存状况,包括服务器的总内存,已经使用的内存和剩下未被使用的内存,以及缓冲区和缓存各自占用的内存情况。...
"Linux的free命令详解" Linux的free命令详解命令详解-内存是拿来用的内存是拿来用的绍linux的free命令。我告诉有朋友我一直用linux。他问我了一下我为什么linux使用的内存这么高。他讲他1G的内在free才232M。讲win ...
本文将深入探讨Linux下应用程序的内存使用情况,并解析`top`命令和`free`命令提供的内存信息。 首先,当我们通过`top`命令查看内存使用情况时,要注意它显示的内存占用并不完全代表应用程序实际消耗的内存。这是...
这里需要注意的是,Linux系统中的“可用内存”(available)是一个更为综合的指标,它包括了真正意义上的空闲内存(free)加上部分buffer/cache可以快速释放出来的内存量。从上述数据可以看出,尽管buffer/cache占用...
Linux系统的存储体系结构涉及缓冲(BUFFER)与缓存(CACHE)的概念与区别,内存管理方案以及页面置换算法。同时,Linux提供了各种用于监控系统资源使用情况的命令,如FREE、VMSTAT和SWAP,它们有助于了解系统内存的...
Linux 操作系统为了提高文件读取效率,采取了两种主要 Cache 方式:Buffer Cache 和 Page Cache。前者针对磁盘块的读写,后者针对文件 inode 的读写。这些 Cache 有效缩短了 I/O 系统调用(比如 read、write、...
Linux系统提供了多种缓存机制,例如,Page Cache、Buffer Cache等。 3. 性能优化工具 3.1 top命令 top命令是一个常用的性能优化工具,可以实时显示系统的CPU、内存、进程等信息。 3.2 vmstat命令 vmstat命令...
Linux内存管理机制的一个显著特点是充分利用空闲内存作为缓存(包括Buffer Cache和Page Cache)。这样做能够极大地提高磁盘I/O效率,从而提升应用程序的整体性能。但是,这种设计也可能会让初学者感到困惑,尤其是在...
通过对Linux系统中的CPU、内存、网络和磁盘问题的详细了解与学习,我们能够更加有效地对系统进行维护和优化。上述知识点涵盖了问题排查的基本思路和常用工具,有助于提高系统管理员的工作效率,并确保系统的稳定运行...