mm4
page cache
在linux读写文件时,page cache用于缓存文件的逻辑内容,从而加快对磁盘映射和数据的访问,应用程序可以通过read/write()、mmap()来访问
page cache的两种形式:
以文件系统中的文件为背景:cached
如
mount /dev/sda1 /mnt
,/mnt
中文件内容的page cache叫cached以裸分区/dev/sdax等为背景:buffers
如
dd id=/dev/sd1 of=xxx
,xxx
的page cache叫buffers
free命令的详细解释
file-backed pages和anonymous pages
file-backed映射,把进程虚拟地址空间映射到files
如 代码段等
当内存不够时,在内存的file-backed pages被删除,等待需要时,重新从磁盘文件将file-backed pages加载到内存中
anonymous映射,进程虚拟地址空间没有映射到任何file
如 stack, heap, CoW pages等
当内存不够时,在内存的anonymous pages被保存到swapfile文件或swap分区,等待需要时,重新从swapfile文件或swap分区将anonymous pages加载到内存中;用LRU算法来进行swap和page cache的页面替换
swap与zRAW
嵌入式的存储设备(如 nand flash, nor flash...)的存取速度很慢且读写次数有限制,所以不可以直接申请swapfile文件或者一个swap分区为anonymous pages作交换动作。
此时就出现存储设备zRAW,zRAW是通过申请一小块内存作为swap分区使用,会将数据解压缩后进出swap分区。这样swap访问速度可以提高很多,因解压缩数据,zRAW申请的内存对应的存储数据变多,但是解压缩会占用CPU时间。
如何使用zRAW?
Last updated
Was this helpful?