我想在物理内存有限的系统上运行Squid。理想情况下,系统不应进行页面交换。 AFAIK,有两种方法可以达到这个目的:
修改例程storeDigestAddable()
(在文件store_digest.c
中)并结合来自sbrk()
的触发器来停止缓存文件。在这种情况下,鱿鱼优雅地降级为仅仅是代理,并且不进行任何缓存。这样可以避免内存中缓存大文件导致的内存膨胀。
绕过sbrk()
的触发器绕过新连接。
这两个都需要更改Squid代码。你有没有遇到/考虑过这个问题?有没有办法通过任何其他方式实现这一目标(没有交换和有限的物理内存)?如果你能指出任何可能有帮助的Squid配置参数,那就太好了。
答案 0 :(得分:0)
你不需要这样做。将cache_mem设置为正确的大小,Squid将为您完成工作,在达到大小时删除对象。您还可以减小ondisk缓存的大小,以减少缓存元数据的大小。