PrimoCache 概述

PrimoCache是什么?

PrimoCache是一款缓存加速软件,可与系统内存、固态(SSD)硬盘和闪存盘等高速存储设备配合使用,以加速相对较慢的存储设备。它可以将系统和应用程序从低速存储设备读取的数据缓存到高速存储设备,当再次需要这些数据时就可以很快从高速设备中读取,无需再访问低速设备,从而大大缩短读取数据的时间,提升读取速度。

此外,PrimoCache可以将系统和应用程序请求写入低速设备的数据先临时写入到高速设备暂存,稍后再将其写回低速设备。通过这种方式,高速存储设备被用作写入缓冲器,可以快速完成写入请求,从而极大提升系统的写入响应,使系统能够处理高负载的写入请求。

PrimoCache能做什么?

PrimoCache功能强大并且配置灵活,能够轻松方便地应用于诸多场景和领域。它可以帮助解决个人计算机、工作站和服务器的读写性能瓶颈问题,可以帮助改善系统启动和应用加载时间、工作性能、游戏体验和系统响应等,还可以帮助减少对SSD的写入磨损并延长其使用寿命。

下面简单列举了一些PrimoCache可应用的工作场景,但并不局限于这些场景。

  • 您已经在机械硬盘上安装了Windows,并且您不想重新安装任何东西,但希望获得类似SSD的性能。
  • 您需要高性能大容量存储,但没有足够的预算来支付昂贵的大容量高性能SSD,您正在寻找一种经济高效的解决方案。
  • 您经常从互联网下载大量文件,并希望保护硬盘避免太多写入。
  • 您安装了32位Windows操作系统和4GB或更多物理内存,并希望利用被Windows隐藏不可用的这部分内存。
  • 您的游戏或应用程序在运行期间会向硬盘写入大量临时文件,导致操作迟滞和糟糕的体验。
  • 您的服务器无法及时处理高负载的IO请求并变得缓慢,甚至无法响应。
  • 您的服务器使用传统存储,并且无法更改器主要基础架构或无法迁移数据,您希望增强服务器的性能。

功能特性简介

PrimoCache基于双级缓存系统架构设计,该架构由一个一级缓存(level-1 cache)和一个二级缓存(level-2 cache)组成。一级缓存使用物理内存作为缓存设备,而二级缓存则通常使用SSD固态硬盘、闪存盘或其它永续性存储设备。很明显地,一级缓存的访问速度远快于二级缓存,尽管一级缓存通常容量小于二级缓存。另一方面,一级缓存中存储的缓存数据在断电后会消失,而二级缓存则具有永久保存的特性。PrimoCache支持任意配置单双级缓存,即可以仅使用一级缓存或仅使用二级缓存,也可以同时使用一级缓存和二级缓存。

由于二级缓存存储设备具有数据永续性的特性,二级缓存中的缓存内容在计算机关机后不会丢失。因此当计算机再次启动后,所需要的常用数据可以直接从二级缓存中读取,而无需访问速度较慢的机械硬盘。对于操作系统或应用程序安装在机械硬盘的计算机,这个特性可以显著减少系统启动时间以及加快应用程序的启动运行。

PrimoCache也支持缓写功能,即可以将系统请求写入的数据先存入缓存设备中,在一定时间后再将数据从缓存设备写入物理硬盘中。缓写功能使系统的写入请求可以快速完成,从而极大地提升硬盘的写入性能。

此外,PrimoCache具备未识别内存管理接口(UIMMI),支持检测系统未识别内存并将其作为一级缓存。由于Windows操作系统和硬件对内存总量的限制,部分系统无法识别所有安装的物理内存,例如,32位桌面Windows系统最大仅支持4GB内存,多余的内存则无法使用。PrimoCache对未识别内存的支持则克服了Windows操作系统的限制,充分利用全部物理内存。

PrimoCache内置智能缓存调度算法,可自动优化决定当缓存空间已满的情况下哪些缓存内容可被丢弃已便腾出空间存储新内容。该算法结合了常用的LFU和LRU算法,并具有自适应调整性,可提供更好的命中率,并无需用户进行参数设置。

PrimoCache支持多种缓存策略以及灵活的缓存设置。您可轻松为您的物理硬盘创建缓存,提高硬盘的读写性能。由于PrimoCache是在Windows驱动层中实现功能,在创建缓存后,系统和其它应用程序无需作任何改变即可自动应用缓存。

基本工作原理

PrimoCache主要部件位于Windows驱动层,它拦截并处理系统发送至硬盘的IO请求。如果IO请求读取的数据已经在缓存中,则直接读取缓存中的数据并完成IO请求。否则数据则从硬盘中读取出来,并存入缓存,同时完成IO请求。由此可见,从缓存读取的数据量越多,则系统性能提升的越多。

PrimoCache Principle Fig. 1PrimoCache Principle Fig. 2

为什么使用PrimoCache?

Windows操作系统本身已经实现了基于文件的缓存系统,为什么还需要额外再使用PrimoCache?

  • PrimoCache采用基于逻辑块的缓存机制,而Windows是基于文件的缓存机制。这两个缓存机制各有优缺点,PrimoCache可以是Windows缓存系统的一个很好补充。
  • 某些应用程序会绕过Windows的缓存系统,但无法绕过PrimoCache,这是因为PrimoCache比Windows缓存位于系统更底层位置。
  • Windows缓存是基于全局进行调度,即对所有数据进行缓存,而PrimoCache可以根据用户需要,设置仅对某些特定分区进行缓存。在同等缓存容量下,后者将更具目标性,也具有更高的缓存命中率。
  • PrimoCache支持将SSD固态硬盘或闪存盘用作机械硬盘的缓存,可以有效提升计算机的启动时间和应用程序运行速度。Windows缓存则无法做到。
  • PrimoCache可以根据不同需要对缓写功能做更多的参数配置,Windows缓存不能。
  • PrimoCache可以识别系统未识别内存,克服部分Windows操作系统对内存总量的现在,充分利用物理内存。