cache笔记一 相关配置以及变量

来源:互联网 发布:nagios监控mysql主从 编辑:程序博客网 时间:2024/06/07 19:32

    trafficserver的cache配置支持文件,裸设备等等,在安装好trafficserver后,默认配置文件目录为/usr/local/etc/trafficserver,与cache对应的配置文件有storage.config,volumn.config,以及cache.config,其中storage.config文件指定存储文件或者裸设备路径,具体使用说明见各文件的注释,这里不再赘述。

    records.config文件中包含了很多可以控制cache行为的变量,详细的说明请参考trafficserver管理手册,这里说明其中几个变量的具体含义。

    (1) proxy.config.cache.target_fragment_size

    这个变量控制将一个文件分成几部分进行存储。trafficserver支持大文件存储,在读写大文件中,trafficserver将一个文件分成几个部分进行操作,这样的好处是,当写一个大文件时,如果这时候有读请求到来,且其中大文件的一部分已经写好,则该部分可以先提供给读请求。大文件分块的唯一影响是会使用更多的索引,如一个大文件是16M,而target_fragment_size为1M,这时共需要17个索引来保存大文件各部分对应磁盘上的元信息。一个索引占10个字节,所以通过修改该变量可以改变大文件占的内存索引的空间。

    有些变量并没有写在records.config文件中,用户通过traffic_line命令可以查看或修改这些变量的值。

    (2) 

traffic_line -r "proxy.config.cache.hit_evacuate_percent"traffic_line -r "proxy.config.cache.hit_evacuate_size_limit"
    trafficserver的cache设计与squid的coss协议大体相似,将磁盘视为一个ring buffer,开始时write_pos指向磁盘头部,每写入内容后,就更新write_pos,使得该参数总是指向磁盘写入的位置。当写满磁盘后,write_pos重新指向磁盘头部,如此循环。由于重写会造成已有内容的覆盖,evacuate的机制的作用是,尽量使得即将被覆盖的内容中比较热点的文件重新写入磁盘,以避免overwrite造成的丢失。默认evacuate机制是关闭的,要将其功能开启,可以通过下面命令

traffic_line -s "proxy.config.cache.hit_evacuate_percent" -v 1traffic_line -s "proxy.config.cache.hit_evacuate_size_limit" -v 1
    该操作使得write_pos后占磁盘空间1%的内容中,读请求访问过的内容重新写入磁盘。

    (3) proxy.config.cache.ram_cache.size与proxy.config.cache.ram_cache_cutoff

    trafficserver的cache层分为两层:磁盘disk与缓存ram cache。在用户第一次请求一个页面时,ts会回源取出object返回给用户的同时,将object写入disk。当用户第二次请求object时,直接disk命中,这时如果条件符合就将object写入ram cache,以后用户再次请求相同object时,就可能直接缓存命中,从而提高响应速度,整个过程可以参考http状态机以及我在cu上写的web cache替换算法分析blog。proxy.config.cache.ram_cache_cutoff用于确定写入缓存的object大小,只有小于该数值的object才会缓存,默认为4M。proxy.config.cache.ram_cache.size为配置的缓存大小,对于在storage.config中配置的每一个disk,ts都会分配一个ram cache给它,分配的ram cache大小百分比与该disk占总体disk空间百分比相同。

    如果用户下载了trafficserver的git工程,会看到其中有一个branch名为ssd,专用于对cache的优化,使得ts在配置有ssd盘与传统hdd盘时,能够高效利用ssd盘的性能。该工程安装后会创建一个新的配置文件storage_ssd.config,语法与storage.config文件相同。针对ram cache有一个额外的变量proxy.config.cache.ram_cache.ssd_percent,它是直接指定ssd盘可以分配的ram cache大小的百分比。如用户配置ram cache大小为8G,该变量为50,则ts分配4G给ssd盘,剩下4G给hdd盘,在各类型磁盘中,每个盘分配的ram cache与之前所述相同。



原创粉丝点击