Varnish将所有的HTTP object存于一个单独的大文件中,而该文件在工作进程初始时就将其整个mmap到内存中。Varnish在该块内存中实现类似于一个简单的“文件系统”,具有分配、释放、修剪、合并等功能。

Varnish文件缓存的优点,就如其创始人Poul-Henning Kamp所说,它是一个具有“现代设计理念”的软件,其整体设计优点可以从[1]得知。我觉得它的优点主要有两点:1、它避免了软件与系统对内存控制的冲 突,引入了虚拟内存的概念,将内存与硬盘文件统一,软件只需要注重对内存的操作即可;2、它将所有的object存于一个文件中,避免类似Squid为每 个object存放一个小文件的设计,减少文件系统频繁的操作。当然这需要记录每个object在内存中的偏移量,并定期检查并释放内存,进而增加编程难 度,但同时提高了系统的性能。