Hello!
2013/3/8 Aaron Lewis:
> 这个是完整的,
>
> 2013/03/06 10:47:05 [error] 32752#0: *7962 attempt to send data on a closed
> socket: u:0000000040D43848, c:0000000000000000, ft:2 eof:0, client:
> 127.0.0.1, server: _, request: "GET /restyp?count=1000000&start=4000000
> HTTP/1.0", host: "127.0.0.1:9998"
注意这里 ft:2 这个部分指示先前出现了致命错误,特别是 2 代表 NGX_HTTP_LUA_SOCKET_FT_TIMEOUT.
>
> 木有共享 resty.memcached,每个线程都单独新建一个对象。
>
> 不过确实超时了 ;-(
>
> 我设置的是1秒钟
>
> 2013/03/06 10:47:05 [error] 32753#0: *8009 lua tcp socket read timed out,
> client: 127.0.0.1, server: _, request: "GET /restyp?count=1000000&start=0
> HTTP/1.0", host: "127.0.0.1:9998"
>
看起来你的 memcached 服务器不能及时返回响应。
> P.S: perl 的 Cache::Memcached 就没有问题,可以高并发插入,不丢数据
>
你用 perl 的 Cache::Memcached 插入时吞吐量(req/sec)能达到多少?并发又是多少?你是否在 Perl
代码里设置了相同的超时并进行了错误处理?
使用 lua-resty-memcached 插入时吞吐量又达到了多少?并发又是多少?
当二者吞吐量相差很大时,比较就没有意义。
Best regards,
-agentzh