On Fri, Mar 30, 2012 at 9:38 PM, mmxcq
<su...@gmail.com> wrote:
你好 ,我在vmware下的centos下面进行安装测试
发现确实能缓存 我就测试了一个普通页面
test.php===>
我设置了他的cache为3个小时
我用ab去测试 我测试的是100个客户端发送1000000个请求
这个页面我是正常的输出200状态 并没有设置任何no-cache的header
我发现10000个请求里面会有90-100个请求又跑到php-cgi进程的生命期去了 就是说拦截器没拦截到
其余的都是正常拦截从Memcached获取数据返回的 memcached -c 10240 内存也不存在跑满的情况 就一个页面 一个key
我设置的key是 $host$request_uri. 应该不会是存在偶尔从memcached没有读取到数据这种现象出现吧 特来请教
因为你使用了ab -c100,即请求的并发度为 100,所以最初会有近 100 个并发请求同时到达 nginx. 由于 nginx 是同时(或者说并发地)处理这 100 个请求,而不是串行处理,因此这 100 个请求都是缓存不命中的(cache miss)。因此,你观察到的“10000个请求里面会有90-100个请求又跑到php-cgi进程”是完全正常的,即便你的请求总数有 100000000 个,最早到达 nginx 的近 100 个请求会 cache-miss :)
Best regards,
-agentzh
P.S. 我抄送了 openresty 邮件组,这样更多的人可以看到我们的讨论。也欢迎你加入:
https://groups.google.com/group/openresty