免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: aaaaaa
打印 上一主题 下一主题

[proxy] Apache Traffic Server 3.2.0 正式版,附srpm包 [复制链接]

论坛徽章:
0
201 [报告]
发表于 2012-01-10 12:15 |只看该作者
在线上使用过程中发现一个问题,针对图片缓存可能存在压缩和非压缩两个副本,情况如下:
1. 同一图片url先发起非压缩请求再发起压缩请求,则ats缓存非压缩和压缩两个副本
2. 同一图片url先发起压缩请求再发起非压缩请求,则ats只缓存一个副本

由于图片都不启用压缩,第一种情况造成缓存空间浪费,目前临时解决办法是使用Header Filter插件,过滤掉Accept-Encoding请求头;请问老大有好的解决办法吗?

论坛徽章:
0
202 [报告]
发表于 2012-01-10 18:39 |只看该作者
你的方法也是目前比较好搞的。

这个比较纠结,因为设计这种方式是为确保压缩数据不会给客户端造成问题,对你的情况,我觉得只有分割动态和静态内容才好。比如动态内容:
map到d.zymlinux.net。静态内容map到s.zymlinux.net。同时对s.zymlinux.net启用proxy.config.http.cache.ignore_accept_encoding_mismatch 或者其他header filter机制。

如果你的系统全是图片,直接设置proxy.config.http.cache.ignore_accept_encoding_mismatch即可。

论坛徽章:
0
203 [报告]
发表于 2012-01-11 10:27 |只看该作者
回复 202# aaaaaa

老大,看了下源代码proxy.config.http.cache.ignore_accept_encoding_mismatch貌似是全局变量;
如果一个静态域名(服务广告)下既有图片也有js/css之类的,通过ignore_accept_encoding_mismatch不好区分了啊

使用header filter的话,比较纠结的就是要基于文件后缀定义很多remap规则

论坛徽章:
0
204 [报告]
发表于 2012-01-11 10:55 |只看该作者
老大,还有两个问题需要咨询下
问题1. 对比下nginx和TS的缓存行为,发现对于HEAD请求nginx能把非缓存内容抓取过来并缓存住,而TS会直接穿透到RS;HEAD请求对于下载站是很常见的,TS对这种实时预取要求高的场景有好的解决办法不?

问题2. 研究了下LogFilter,目前只支持字符串match和contain模式,有没有ip/mask支持计划;比如我要过滤内网网段ip过来的请求日志,172.16.0.0/12、192.168.0.0/16,单纯使用match和contain配置上将是恐怖的

论坛徽章:
0
205 [报告]
发表于 2012-01-11 21:10 |只看该作者
回复 204# iamxiaocainiao


    你这2个问题都很专业:
1,这个问题我们已经在关注,原TS设计的时候基本照RFC作的,因此没有body的内容如304等结果,是没法保存在cache里的。同时文件系统、网络系统实现时又把没有body的情况进行了类似于出错处理等,造成重新cache 0字节的body很麻烦,我们的火箭科学家John也有点搞不定。我们团队刚刚完成了一个小patch,目前还没实测,估计1周内应该有结果。
FYI: https://issues.apache.org/jira/browse/TS-621

2,关于这个是IP匹配问题,我们也是有些想法 https://issues.apache.org/jira/browse/TS-698 ,最近IPV6的变更还没有完全完成,log优先级比较低

看你的问题,对TS还是比较理解的,如果你能提个patch啥的,我会非常乐意帮你commit

论坛徽章:
0
206 [报告]
发表于 2012-01-13 10:24 |只看该作者
本帖最后由 yunfeichen119 于 2012-01-13 10:39 编辑

我对traffic serveer进行测试(开启了prefetch),使用traffic_server命令启动的,cache大小是256M,用脚本跑了一个晚上,走之前,使用http ui查看cache有数据,今天早上ctrl + c关掉了traffic server,重新启动traffic server,利用http ui查看cache,是空的。使用sudo traffic_line -r proxy.node.cache.percent_free命令查看,显示0.041724。 这个可能是什么原因造成的??

论坛徽章:
0
207 [报告]
发表于 2012-01-14 23:32 |只看该作者
TS代码中有bug造成某些情况下会出现cache无法生效,这个可能跟TS-948有关系。貌似这里的关键是num_rules_forward_with_recv_port的初始化。

可能与此有关系。

论坛徽章:
0
208 [报告]
发表于 2012-01-17 12:17 |只看该作者
回复 205# aaaaaa

多谢老大

第一个问题,nginx启用cache时思路是: client过来的是HEAD请求(对象未缓存),到后端upstream被nginx修改成GET,从而绕过0字节问题;另外,启用缓存时nginx避开后端304响应,没有update_header_only的担心。

第二个问题,只要启用一个REGEX_MATCH就能临时解决问题,当然更期待老大的高级版本精确ip段匹配;有空我看看整一个正则补丁吧。

论坛徽章:
0
209 [报告]
发表于 2012-02-04 18:32 |只看该作者
老大,ts的proxy.config.dump_mem_info_frequency配置可以查看allocator分配的内存,我在看代码时,发现xmalloc,xfree,NEW分配内存时有跟踪内存使用的代码,怎么查看xmalloc,xfree使用的内存呀?相应的配置是什么呀?

论坛徽章:
0
210 [报告]
发表于 2012-02-06 02:48 |只看该作者
有些代码应该是没有用啦。dump出来的信息应该就比较足了。为什么要看内存了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP