`
wezly
  • 浏览: 492380 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Apache2.2磁盘缓冲mod_disk_cache

阅读更多

相关模块:
★ mod_disk_cache 
相关指令: 
★ CacheEnable 
★ CacheDisable 

mod_disk_cache为mod_cache提供了一个基于磁盘的缓冲机制。和mod_mem_cache一样,这是一种智能缓冲,仅在缓存内容没有失效的情况下才从缓冲区中提供服务。 

通常,这个模块将按如下方式进行配置: 

CacheRoot /var/cache/apache/ 
CacheEnable disk / 
CacheDirLevels 2 
CacheDirLength 1 

请注意,因为缓冲区位于本地磁盘上,所以操作系统的内存缓冲区通常对它们的访问也有效。所以虽然这些文件被存储在本地磁盘上,但若这些文件被频繁的访问,那么很可能操作系统已经将它们保存在内存中了。 
深入理解缓冲存储区(Cache-Store) 

要将项目保存在缓冲区中,mod_disk_cache会为被请求的URL创建一个22字符的哈希值。该哈希值包含了该URL的主机名、协议、端口、路径、CGI变量,以确保多个URL不会发生碰撞。 

这22个字符的取值范围是64个不同的字符,这意味着最多可以有22^64种可能的取值。例如,一个URL的哈希值可能是:xyTGxSMO2b68mBCykqkp1w 。这个哈希值将被用作缓存中对应于那个URL的文件名前缀,但是首先,这个哈希值将被按照CacheDirLevels和CacheDirLength指令分解成每一级目录名。 

CacheDirLevels指定了子目录的层数,CacheDirLength指定了每级子目录名的字符数。使用上述例子的设置,这个哈希值将被转化成如下文件名前缀:/var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w 。 

使用这种技术的总体目标是减少某个特定目录中子目录或文件的个数,因为绝大多的文件系统在子目录或文件数过多的情况下的访问速度都会大打折扣。将CacheDirLength设置为"1"将使得任意一层目录下的子目录数都不会超过64,若为设为"2"则为64*64,依此类推。除非你有一个非常好的理由,否则"1"将是CacheDirLength指令的推荐值。 

如何设置CacheDirLevels指令的值取决于你预计到将会在缓冲区中保存多少个文件。上述示例使用的"2"将会导致大约会有4096个子目录最终被建立,大约100万个文件被缓存,大约平均每个文件夹存储245个URL缓冲文件。 

每个URL在缓冲区中至少会使用两个文件。通常,一个是包含了URL元信息(meta-information)的".header"文件,比如何时失效;另一个是".data"文件,包含了按字节复制的用于为URL提供服务的内容。 

在通过使用"Vary"头进行内容协商的情况下,将会为该URL创建一个".vary"目录,该目录下将会保存多个适合不同协商内容的".data"文件。 
维护磁盘缓冲区 

虽然mod_disk_cache将会删除缓冲区中失效的文件,但是它并不负责维护整个缓冲区总共究竟应该占据多大空间以及至少要保留多少剩余空间。 

作为弥补,Apache附带了一个htcacheclean工具,正如你从它的名字猜到的,它可以周期性的清理缓冲区。确定htcacheclean的运行频率以及缓冲区应当占有多大的磁盘空间是一件复杂的事情。必须要经过多次尝试和碰壁才能找到一个最佳值。 

htcacheclean有两种运作模型。一种是作为后台守护进程运行,或者由cron周期性的调用。htcacheclean经常使用一个小时或更多的时间来处理非常巨大的(几十G)缓冲区,所以如果你是使用cron来调用它的话,建议你测试一下多长时间运行一次比较合适,以避免在同一时间运行多个实例。 



   
图1: 一个典型的缓冲区增长和清理的周期 

因为mod_disk_cache模块自身并不关心究竟实际使用了多少磁盘空间,所以你必须确保htcacheclean被配置为在清理了缓冲区以后预留了足够多的"增长空间"。

  • 大小: 14.6 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    mod_python-3.3.1.win32-py2.5-Apache2.2.exe

    《Apache2.2环境下的mod_python模块与Python2.5集成详解》 在Web开发领域,Apache HTTP Server作为最流行的开源Web服务器,广泛应用于各种规模的网站和应用程序。而Python作为一门强大且易学的编程语言,也因其丰富...

    apache2.2 和2.4 mod_jk 1.2.4

    本压缩包包含适用于Apache 2.2和2.4版本的`mod_jk`模块的动态链接库文件,即`mod_jk.so`,这将帮助在Windows环境下配置Apache与Tomcat的集成。 Apache 2.2和2.4是两个主要的Apache服务器版本,每个版本都有其特定的...

    apache2.2 with mod_wsgi for amd64_X64

    注意:64位系统专用,如要32位的,请搜索我另外发布的一个资源"apache2.2 with mod_wsgi for win32_X86"。 使用Apache2.2+mod_wsgi搭建django站点,将apache和mod_wsgi打包提供下载,默认情况下,apache和站点平行...

    apache2.2+mod_jk

    安装Apache2.2+mod_jk的过程包括以下几个关键步骤: 1. **下载和安装Apache2.2**:首先,你需要从Apache官方网站下载适用于Windows的Apache2.2安装包。安装过程中,你可以选择自定义安装路径,并根据需要配置端口号...

    apache2.2 with mod_wsgi for win32_X86

    注意:32位系统专用,如要64位的,请搜索我另外发布的一个资源"apache2.2 with mod_wsgi for amd64_X64"。 使用Apache2.2+mod_wsgi搭建django站点,将apache和mod_wsgi打包提供下载,默认情况下,apache和站点平行...

    Apache2.2 with mod_jk

    【Apache2.2 with mod_jk】:这个标题指出我们关注的是Apache HTTP Server 2.2版本,并且它已经配置了mod_jk模块。Apache HTTP Server是世界上最流行的Web服务器软件,而mod_jk是Apache的一个模块,专门用于连接...

    WLSPlugin12.2.1.4.0-Apache2.2-Apache2.4-Linux_x86_64-12.2.1.4.0.zip

    "WLSPlugin12.2.1.4.0-Apache2.2-Apache2.4-Linux_x86_64-12.2.1.4.0.zip" 是一个包含WebLogic Plugin的压缩包,适用于Apache 2.2和2.4版本,且专为Linux x86_64架构设计。 **WebLogic Plugin**: WebLogic Plugin...

    Apache2.2+mod_ASPDOT

    Apache2.2是Apache HTTP Server的一个版本,这是世界...总之,Apache2.2结合`mod_aspdotnet`提供了跨平台的Web服务器解决方案,让开发者可以在Apache上部署和运行ASP.NET应用,扩展了Web服务器的平台兼容性和应用范围。

    windows_mod_wsgi_apache2.2-2.4_python2.6-3.4全版本都有

    标题和描述提及的是"windows_mod_wsgi_apache2.2-2.4_python2.6-3.4全版本都有",这表明这是一个针对Windows操作系统的mod_wsgi模块的集合,该模块是为Apache Web服务器设计的,支持Apache 2.2到2.4版本,并且兼容...

    mod_python-3.3.1.win32-py2.6-apache2.2.exe

    mod_python 3.3.1 for python 2.6 and apache 2.2 on windows

    Apache 2.2官方安装包

    该文件版本为Apache 2.2.31,包含两个安装包,httpd-2.2.31-x64-r6(64位系统可用),httpd-2.2.31-x86-r6(32位系统可用),解压缩后可用,将解压缩后的文件夹,放到你想要存放的位置,运行cmd,定位到该文件夹的...

    apache2.2和python2.7的mod_wsgi

    Apache 2.2 和 Python 2.7 之间的交互...总的来说,Apache2.2 和 Python2.7 通过 mod_wsgi 提供了一个高效、稳定的方式来部署 Django 项目,让开发者可以充分利用 Apache 的性能和稳定性,同时享受 Django 的强大功能。

    mod_python-3.3.1.win32-py2.4-Apache2.2.exe

    apache python mod_python 插件 更多到我的站点: http://www.iteedu.com/download

    Apache 内容动态缓冲模块 mod_cache应用

    从Apache2.2起,mod_cache和mod_file_cache将不再是试验模块,它们已经足够稳定,可以用于实际生产中了。这些缓冲体系提供了一个强有力的途径来加速原始web服务器(origin webserver)和代理服务器(proxy)的HTTP处理...

    apache2.2 服务器 mod_jk.so

    在标题中提到的`mod_jk-1.2.26-httpd-2.2.4.so`文件,是针对Apache 2.2.4版本的`mod_jk`模块,版本号为1.2.26,是连接Apache和Tomcat的关键组件。 集成步骤如下: 1. **安装Apache**:文件`apache_2.2.4-win32-x86...

    Apache 2.2安装包+Apache 2.2 中文手册

    在这个压缩包中,包含了Apache 2.2的安装程序以及中文手册,这对于在中国使用或管理Apache服务器的用户来说尤其方便。 一、Apache 2.2安装过程 1. 下载:首先,你需要从官方或可靠的源下载Apache 2.2的安装包。在...

    weblogic 9.x 与 apache 2.2.x 集成的 库文件mod_wl_22.so

    weblogic 与 apache 2.2.x 集成的时缺少一个库文件mod_wl_22.so ,本身带的是mod_wl_20.so,只能与 apache 2.0.* 整合。整合方法请google

    apache2.2+mod_JK+Tomcat7+Terracotta3.7 集群(重要)

    Apache 2.2、mod_JK、Tomcat 7 和 Terracotta 3.7 是构建高可用性和可扩展性 Web 应用集群的关键组件。这个集群配置旨在提高应用程序的性能,通过负载均衡和故障转移确保服务的连续性。下面我们将深入探讨这些组件...

    linux apache2.2 mod_wsgi

    在ubuntu64位,apache2.2,python2.7的环境下,编译出来到mod_wsgi.so文件。 亲测可用。

Global site tag (gtag.js) - Google Analytics