非常感谢您的及时回复!
在 2012年9月19日星期三UTC+8上午10时04分25秒,agentzh写道:
Hello!2012/9/18 Hailei Zhang <xiao...@gmail.com>:
> 我们使用srcached
> module,memcached作为backend,通过观察memcached的统计信息,发现get和set的次数相差很多,
具体相差多少?谁多谁少?
get多 set少
STAT cmd_get 997458
STAT cmd_set 132663
STAT get_hits 12312
STAT get_misses 985146
> 我们命中率非常低基本在1/80,按照这样的情况get和set的情况应该相差不多,我的理解一次请求过来,首先从cache中取,发现没有再从真正的后端取与之此同时并set一份放在cache中。这样命中率比较低的情况get和set数量应该相差不多,是这样的吗?
>
你能把 ngx_srcache 提供的变量 $srcache_fetch_status 和 $srcache_store_status
记录到 nginx 访问日志中去么?
http://wiki.nginx.org/HttpSRCacheModule#.24srcache_fetch_status
http://wiki.nginx.org/HttpSRCacheModule#.24srcache_store_status
值得一提的是,无论是请求还是响应都可以自己决定是否绕过缓存,所以统计这两个变量的值有助于分析是否存在请求或响应主动绕过缓存的情形。
另外,贴出你的 nginx.conf 中的相关配置也可能会对分析有所帮助 :)
location /memc_xiaoqu {
internal;
set $memc_key $request_method$request_uri;
set $memc_exptime 1800;
memc_pass 10.3.3.11:11266;
}
srcache_fetch GET /memc_xiaoqu $key;
srcache_store PUT /memc_xiaoqu $key;
srcache_methods GET;
同时从access.log统计了一下http status code大部分为200,也没有设置 store fetch skip的情况
Best regards,
-agentzh