我们的 ISA 服务器管理员这样说:
ISA 缓存的工作原理如下:当 ISA 服务器收到访问网站的请求时,它采取的第一步是检查缓存,看看是否可以在本地加载该请求。由于缓存目前的大小为 50Gb,服务器必须检查整个缓存文件,然后 a) 直接将结果返回给用户,或 b) 将请求传递到互联网以检索网页(并将其放入缓存中)。解析这么多数据可能会减慢互联网访问速度。
拥有较小的缓存是有好处的,因为 ISA 服务器可以更快地处理请求,而不必在较长的一段时间内(就计算机术语而言)不断检查本地磁盘。
他建议我们将缓存文件从 50GB 减少到 10GB。
虽然我同意他的观点,但当然,这可能会走向极端:如果我没有任何缓存文件,我当然可以跳过那些可怕的慢速磁盘,并且在每次收到请求时只需转到快速的互联网。
因此,问题是:ISA 服务器磁盘缓存文件的最佳大小是多少?ISA 服务器是否有方便的缓存请求索引或哈希表,这样无论缓存文件有多大,它都能够在 O(1) 时间内找到您想要的任何缓存内容的偏移量?
答案1
这听起来不太合理,因为缓存确实如您所怀疑的那样被正确索引了。服务启动时,它会被重新索引,此时 ISA 会验证缓存的内容。这种观点含糊不清,而且笼统,没有考虑到对象索引或部分缓存数据也存在于内存中 - 但如果没有实际测试,就无法否认,所以谁知道呢?不过,将其减少到 10GB 很可能也不会有什么坏处?^^
不过,缓存的性能取决于许多其他因素。ISA Server 2004 默认使用 10% 的内存来缓存最近使用的缓存对象,而较旧的对象显然只会在磁盘上。建议增加内存并确保至少 1GB 的 Web 缓存空间 - 是的,缓存的磁盘系统将对总体缓存性能产生很大影响 - 但大小实际上并不重要。
有信息称 ISA 2000 的数据库文件限制为 10GB,超过该限制时会创建多个文件 - 但没有提到这会对性能产生负面影响。有几篇帖子建议此版本的缓存大小不超过 10GB,因为“更多不会真正有帮助”,但不是因为它会减慢速度。
以下是一些优化缓存性能的一般技巧于 2004 年。