在Liunx内存管理机制中,除了对目录项(dentry,Linux文件系统中某个inode的链接)进行缓存外,
还采取了两种高速缓存,即Buffer Cache和Page Cache,前者针对磁盘块的读写,后者针对文件inode的
读写。通过增加这些Cache,有效缩短 I/O时间。
先通过free命令查看内存使用情况:
free -m
total used free shared buffers cached
Mem: 32176 30032 2144 0 249 25938
-/+ buffers/cache: 3844 28332
Swap: 0 0 0
返回结果中,buffer和cache说明两种前面提及的两种高速缓存使用内存情况,其中:
Buffers :说明缓存块设备读写的内存大小(buffer cache),这部分缓存主要用于
目录项、inode等文件系统元数据。如果ls一个包含很多内容的目录,可以
发现这个值明显增大。
Cache :说明用于缓存文件系统读写的内存大小(page cache),这部分缓存主要用于
打开的文件,如果 cache 的值很大,说明缓存的文件较多,在进行读写时,命
中率也将提高,如果频繁访问到的文件大部分被缓存,则必然减少磁盘的读IO。
It is similar like "Buffers", only this time it caches pages from file reading.
两种cache处理数据采用策略是不同的,具体如下:
buffer采用先进先出策略,cache则采用最少使用原则(LRU),即对于buffer缓存来说,
当缓存的内容达到其最大容量时,最先缓存的内容被清空,对于cache来说,当缓存的内容达到
其最大容量时,最少被访问的内容被清空。
释放不同高速缓存的方法是通过修改/proc文件系统相关参数,/proc是Linux虚拟文件系统,
通过对其进行读写操作实现与用户空间和内核空间的通信。即通过修改/proc中的内容,对当前kernel
的行为做出调整。内存缓存释放是通过调整/proc/sys/vm/drop_caches的值实现。
具体规则如下:
1)运行sync将dirty的内容写回硬盘,防止数据丢失。
2)释放page cache
echo 2 > /proc/sys/vm/drop_caches
4)释放 pagecache,VFS目录向和inodes
echo 3 > /proc/sys/vm/drop_caches
相关推荐
另外Cache Server拥有强大的编程能力,拥有业内功能最强大的内存数据库脚本,使Cache Server不只作为数据的高速缓存服务器,更能够实现复杂的业务逻辑,通过编写数据库脚本和存储过程实现以前通过C/C++编程才能实现...
内存屏障、内存映射、同步机制、GDB基本功能、CPU缓存、...描述符、虚拟内存机制、RCU机制、ARM架构、高速缓存、页面回收、数据同步、回写机制、页交换、 软硬中断区别、等待队列、字符设备驱动、系统调用、内存碎片。
您可能感兴趣的文章:MySQL优化之缓存优化mysql的查询缓存说明使用Memcache缓存mysql数据库操作的原理和缓存过程浅析浅析MySQL内存的使用说明(全局缓存+线程缓存)MySQL高速缓存启动方法及参数详解(query_cache_...
2.3.4 页面高速缓存(cache) 29 2.3.5 Linux中的分页机制 30 2.4 Linux中的汇编语言 31 2.4.1 AT&T与Intel汇编语言的比较 31 2.4.2 AT&T汇编语言的相关知识 32 2.5 Linux系统地址映射示例 33 习题2 35 第3章 进程 ...
Linux内核实现了称为页缓存的磁盘缓存。此高速缓存的目标是通过将数据存储在物理内存中来最大程度地减少磁盘I / O,否则这些数据将需要磁盘访问。本章介绍页缓存以及将页缓存的更改回写到磁盘的过程,这称为页回写。
冷页表示该空闲页已经不再高速缓存中了(一般是指L2 Cache),热页表示该空闲页仍然在高速缓存中。冷热页是针对于每CPU的,每个zone中,都会针对于所有的CPU初始化一个冷热页的per-cpu-pageset. 为什么要有冷热页?...
memcache是一套分布式的高速缓存系统,特点为key-value 存储 一、在 linux 编译安装memcache、redis等,需要 gcc,make,cmake,autoconf,libtool 等工具, 直接使用yum安装即可: yum install gcc make cmake autoconf ...
作为网页服务器的前置,不但可以抵御各种黑客攻击,还可以高速内存cache服务器缓存相关请求来提高Web服务器的速度,并且具备网站集群负载均衡等功能。目前中国大陆使用Safe3WAF网站用户有搜狐、国防科技大学招生网等...
前面介绍了Linux下有多种Shell,一般缺省的是Bash,如果想更换Shell类型可以使用chsh命令。先输入账户密码,然后输入新Shell类型,如果操作正确系统会显示“Shell change”。其界面一般如下: Changing fihanging ...
Cache:高速缓存。我们知道,电脑的内存是以系统总线的时钟频率工作的,这个频率通常也就是CPU的外频。但是,CPU的工作频率(主频)是外频与倍频因子的乘积。Cache是一种特殊的存储器,它由Cache 存储部件和Cache控制...
高速缓存器 C. 随 机存储器 D. 软盘存储器 8.组成计算机的 CPU 的两大部件是( A )。 A.运算器和控制器 B. 控制器和寄存器 C.运 算器和内存 D. 控制器和内存 9.在描述信息传输中 bps 表示的是( D )。 A.每...
C:squidsbin>squid -z (生成高速缓存的目录) C:squidsbin>squid (启动squid服务,另一种比较好的方法是在“管理工具”, “服务”中选择SquidNT,然后选择启动服务) 以上简明说明了squid for Windows的安装...
高速缓存 C.外存 D.缓存 16、下列关于硬盘的说法正确的是()。 A.是存储器,不是输入输出设备 B.既是存储器又是输入输出设备 C.是输入输出设备不是存储器 D.是存储器和输入设备不是输出设备 17、程序设计语言一般可...
│ 高并发编程第二阶段07讲、CPU以及CPU缓存的结构,解决高速缓存一致性问题的两种方案介绍.mp4 │ 高并发编程第二阶段08讲、并发编程的三个重要概念,原子性,可见性,有序性.mp4 │ 高并发编程第二阶段09讲、...
│ 高并发编程第二阶段07讲、CPU以及CPU缓存的结构,解决高速缓存一致性问题的两种方案介绍.mp4 │ 高并发编程第二阶段08讲、并发编程的三个重要概念,原子性,可见性,有序性.mp4 │ 高并发编程第二阶段09讲、...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
● about:cache-显示缓存页面 ● about:plugins - 用来显示附加元件的状态 ● about:version-显示版本信息 ● about:crash - 显示崩溃画面 ● about:hang - 使这个页面假死(不接受任何命令) ● about:...