• 1
  • 2
  • 3
  • 4
  • 5
Linux操作系统运维问题 首 页  »  帮助中心  »  云服务器  »  Linux操作系统运维问题
ECS linux page buffer与cache分别的介绍与它们的区别
发布日期:2015-12-22 20:12:20

  buffer

  buffer是根据磁盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。linux有一个守护进程定期清空缓冲内容(即写入磁盘),也可以通过sync命令手动清空缓冲。卸载设备时会清空缓冲,所以有些时候卸载一个设备 时要等上几秒钟。

  buffer大部分被用于在软件中。 这些缓冲器通常使用较快的RAM来存储临时数据,因为RAM具有比硬盘驱动器的更快的存取时间。 一个缓冲区常常通过实施在存储器中的队列或先进先出算法调整定时。 因此,可以经常将数据写入队列以一种速率和在另一速率阅读它。

  buffer 也常常使用带有I /O硬件,如磁盘驱动器,发送或接收数据或从网络或上的扬声器播放的声音。 缓冲器用于多种用途,如互连两根数字电路以不同的速率工作时,保持用于数据在以后的时间,从而允许定时修正要在数据流上制成,收集二进制数据位转换为可随 后被操作上组作为一个单元,并延迟的信号的传输时间,以便允许其它操作发生。

  cache

  内存缓存( memory cacheing)存储器缓存是当缓存是主存储器的一部分

  磁盘缓存(disk cacheing) ,而磁盘缓存是用来缓存其他一些单独的存储区的一部分,例如一个硬盘。缓存是将数据存储在高速缓存中,以使数据可以在以后更快地访问的过程。 存储的高速缓存内的数据可能是前面已经计算在别处存储的原始值的循环值。 当请求的一些数据,缓存首先检查以查看它是否包含该数据。取数据可以比从源原点检索更快速地从高速缓存。

  cpu在执行程序所用的指令和读数据都是针对内存的,也就是从内存中取得的。由于内存读写速度慢, 为了提高cpu和内存之间数据交换的速度,在cpu和内存之间增加了cache,它的速度比内存快,但是造价高,又由于在cpu内不能集成太多集成电路, 所以一般cache比较小,之后intel等公司为了进一步提高速度,又增加了二级cache,甚至三级cache,它是根据程序的局部性原理而设计的, 就是cpu执行的指令和访问的数据往往在集中的某一块,所以把这块内容放入cache后,cpu就不用在访问内存了,这就提高了访问速度。当然若 cache中没有cpu所需要的内容,还是要访问内存的。

  区别

  简单来说,cache是被从磁盘中读出来的,而buffer是即将要被写入磁盘的。

  cache经常被用在磁盘的I/O请求上,如果有多个进程都要访问某个文件,于是该文件便被做成cache以方便下次被访问,这样可提高系统性能。

  buffer是由各种进程分配的,被用在如输入队列等方面。一个简单的例子如某个进程要求有多个字段读入,在所有字段被读入完整之前,进程把先前读入的字段放在buffer中保存。

  尽管如此,一个buffer和cache的功能不是相互排斥的,并且经常被结合为一个理想的性能。