我有一个包含五个节点的 Windows Server S2D 集群。我配置了 51GB 的 CSV 缓存。但是,几天后,服务器分配的内存不会超过 1.5GB。我短暂地看到过 1.6GB。为什么服务器没有利用可用内存?
我的猜测是条目生存时间非常短,缓存不会延长生存时间以最大程度地利用可用的缓存大小,而是坚持固定的时间跨度。我能想到很多原因,例如超过一定年龄的条目可能不会导致缓存命中,因此不应缓存,或者管理大型缓存所需的资源不值得任何所谓的性能优势。我真的在寻找更合理的解释。
我想补充一点,虚拟机流量的缓存命中率在 5% 到 55% 之间。
答案1
CSV Cache 只加速读取,它不使用 LRU 或 MRU 算法,而是采用类似 ARC 的块保留策略(但执行得非常糟糕)。长话短说 - 如果您不反复读取同一组逻辑块来丢弃某些阈值 - CSV 缓存中将不会保留任何内容。