三、合理规划Forefront安全网关的缓存
如上图所示,远程用户在访问Web服务器的时候,其实访问的是Forefront安全网关中的反向缓存中的内容。在这种情况下,Forefront缓存规划跟用户的访问速度就息息相关了。在用户数量比较多的情况下,需要对Forefront安全网关的缓存进行合理规划,以进一步提高用户访问的性能。
通常情况下,Forefront安全网关会将缓存内容存在在内存和磁盘中。众所周知,用户访问内存的速度要比访问磁盘中的数据酷快几百倍,为此Forefront安全网关会将最常用的内存同时存储到内存与磁盘中。从理论的角度讲,缓存的内容全部存储到内存中是最好的。但是实际情况是无法满足的。因为内存的容量比较小,而且也不可能将全部内存空间用来存储这些缓存数据。默认情况下,只有10%的内存会用于缓存对象。当磁盘上的缓存文件的存储空间满了的话,系统会将旧的内容从缓存中删除。具体的机制笔者认为管理员不需要了解的很透彻。
对这个缓存的规划,笔者提出以下建议。
第一,由于内存的访问速度比磁盘的访问速度快许多。为此到用户数量比较多的时候,在Forefront安全网关中最好使用尽可能大的内存。如此的话,就可以将尽可能多的数据存放到内存中。这里需要提醒的一点是,虽然可以通过配置来调整内存中缓存空间的大小,如将10%提高到50%。但是笔者并不建议这么做。因为Web缓存只是Forefront安全网关的其中一项功能。如果内存中缓存空间占用过大,就会给其它应用带来负面影响。我们现在要创造的是一种和谐的“社会”,所以不能够牺牲其他应用来成就Web服务。
第二,如果缓存的数据确实需要存储到磁盘上,那么有什么方式可以提高本地磁盘上的数据的检索速度呢?笔者认为,管理员最好采用本地驱动器作为缓存的存储位置,而不需要使用网络驱动器。因为用户访问网络驱动器的速度要比访问本地驱动器慢许多。
第三,文件系统的选择。虽然Forefront安全网关缓存机制对于文件系统没有特别的规定,如Fat32与NTFS文件系统都可以使用。但是笔者建议,最好还是使用NTFS文件系统。这主要是因为NTFS文件系统能够提供更高的性能与安全性。
第三,规划物理磁盘的缓存位置时需要考虑到不同应用之间的争用问题。因为磁盘的I/O是受到一定限制的。如果将缓存文件与操作系统或者Forefront系统部署在同一个磁盘上,那么在运行的时候,这些系统都需要从磁盘中读取数据。此时就可能会发生I/O征用的情况。为此笔者建议,最好将存储缓存文件的磁盘与安装有操作系统或者Forefront系统的磁盘分开,以避免I/O争用影响请求的性能。
第四,如果在大型的部署中,管理员还可以通过阵列来实现缓存机制,进一步提高性能。在阵列中Forefront安全宦官使用缓存阵列路由协议为阵列中的所有服务器提供单个逻辑缓存。不过需要用到这么复杂的设计并不是很多。笔者在这里也就不过多展开。
总之,Forefront安全网关的Web缓存机制,只要部署得到,可以明显提高Web服务的性能,实现安全与性能两不误。