Squid中文权威指南第七章

2009-05-13 12:00:39来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

7.磁盘缓存基础7.1 cache_dir指令
cache_dir指令是
[url=javascript:;]squid[/url]
.conf配置文件里最重要的指令之一。它告诉squid以何种方式存储cache文件到磁盘的什么位置。cache_dir指令取如下参数:
cache_dir scheme directory size L1 L2 [options]
7.1.1 参数:Scheme
Squid
支持许多不同的存储机制。默认的(原始的)是ufs。依赖于操作系统的不同,你可以选择不同的存储机制。在./configure时,你必须使用--
enable-storeio=LIST选项来编译其他存储机制的附加代码。我将在8.7章讨论aufs,diskd,coss和null。现在,我仅仅
讨论ufs机制,它与aufs和diskd一致。
7.1.2 参数:Directory
该参
数是文件系统目录,squid将cache对象文件存放在这个目录下。正常的,cache_dir使用整个文件系统或磁盘分区。它通常不介意是否在单个文
件系统分区里放置了多个cache目录。然而,我推荐在每个物理磁盘中,仅仅设置一个cache目录。例如,假如你有2个无用磁盘,你可以这样做:
# newfs /dev/da1d
# newfs /dev/da2d
#
[url=javascript:;]mount[/url]
/dev/da1d /cache0
# mount /dev/da2d /cache1
然后在squid.conf里增加如下行:
cache_dir ufs /cache0 7000 16 256
   
cache_dir ufs /cache1 7000 16 256
假如你没有空闲硬盘,当然你也能
[url=javascript:;]使用[/url]
已经存在的文件系统分区。选择有大量空闲空间的分区,例如/usr或/var,然后在下面创建一个新目录。例如:
# mkdir /var/squidcache
然后在squid.conf里增加如下一行:
cache_dir ufs /var/squidcache 7000 16 256
7.1.3 参数:Size
该参数指定了cache目录的大小。这是squid能使用的cache_dir目录的空间上限。计算出合理的值也许有点难。你必须给临时文件和swap.state日志,留出足够的自由空间(见13.6章)。我推荐挂载空文件系统,可以运行df:
% df -k
Filesystem  1K-blocks     Used    Avail Capacity  Mounted on
/dev/da1d     3037766        8  2794737     0%    /cache0
/dev/da2d     3037766        8  2794737     0%    /cache1
这里你可以看到文件系统有大约2790M的可用空间。记住,UFS保留了部分最小自由空间,这里约是8%,这就是squid为什么不能使用全部3040M空间的原因。
你也许试图分配2790M给cache_dir。如果cache不很繁忙,并且你经常轮转日志,那么这样做也许可行。然而,为安全起见,我推荐保留10%的空间。这些额外的空间用于存放squid的swap.state文件和临时文件。
注意cache_swap_low指令也影响了squid使用多少空间。我将在7.2章里讨论它的上限和下限。

线是,你在初始时应保守的估计cache_dir的大小。将cache_dir设为较小的值,并允许写满cache。在squid运行一段时间后,
cache目录会填满,这样你可以重新评估cache_dir的大小设置。假如你有大量的自由空间,就可以轻松的增加cache目录的大小了。
7.1.3.1 Inodes
Inodes
(i节点)是unix文件系统的基本结构。它们包含磁盘文件的信息,例如许可,属主,大小,和时间戳。假如你的文件系统运行超出了i节点限制,就不能创造
新文件,即使还有空间可用。超出i节点的系统运行非常糟糕,所以在运行squid之前,你应该确认有足够的i节点。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Squid中文权威指南第六章

下一篇:Squid中文权威指南第八章