id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	due_date
122	为报价库增加页面缓存层	linhao		"针对报价库近来resin负载比较多的情况，先去观察了一下resin前端squid的命中率，大概只有10-30%，这样严重影响到后面resin的性能。
原因主要在架构上。
当前的架构是： nginx(POST) -- nginx(静态页面及分派) --squid --resin
问题在于，终端页等静态页面，实质是非完全的静态，里面存在很多SSI（豆腐块）的请求，于是1个静态页面的请求衍生为10个以上的动态请求，而且URL组合极多，导致squid层无法满足缓存对象的需要，最后也就压到resin头上。
所以，本次就增加了3台大容量的服务器做页面缓存。
架构变更为： nginx(POST)[URI hash] --squid(页面缓存) -- nginx(静态页面及分派) --squid --resin
减少到第二层的nginx的请求量，直观上看，减少每减少一个到静态页面nginx的请求就减少了10个到后端resin的请求，优化的程度会更高。

说说改造期间nginx的问题。
为了优化缓存层容量，需要在第一层的nginx使用URI hash进行分派。
问题在于，URI hash 的模块是用第三方模块 upstream_hash ，这个模块很久都没做代码更新，虽然能编译进nginx，但会在运行1小时之后，nginx的进程就会占用100%cpu，导致负载很高，并且访问响应会变得很慢。
尝试过使用nginx 1.2.3 和 0.8.48 结果也是一样。
于是尝试使用第二个hash模块：consistent_hash
按介绍，是使用的是一致性的hash算法，对于后端是缓存的架构，会有更优的作用。
替换掉upstream_hash ，重新编译 nginx 1.0.10
经过1天的测试，负载跟以前没做URI hash的情况接近，访问也正常。"	优化	closed	major	2012报价库5.0	报价库	报价库5.0	fixed	nginx squid		07/09/2012
