春哥,
您好! 关于subrequest的性能问题。
目前我用nginx做redis3.0集群的proxy, 对于单个key/value 请求可以达到20w+, 但是对于mget/mset 我目前的做法是用subrequest 模块开发的,同时并行请求到后端的redis集群。
问题:
1. 当我mset/mget key/value数量是50个时候, 进行压测, 发现nginx的qps不高, 50个key/value会同时发起50次subrequest。(以前的版本是用java阻塞的方式循环发送50次, 跟java相比对 效果不明显, qps提不起来)
2. 我的架构师nginx 调用so, so是用c++开发的, 大量用到了vector/map 不知道会不会很影响性能。
火焰图见附件。 采样的cpu
sample-bt-off-cpu -p $1 --min 10 -t 10
非常感谢,期待的春哥的回复,感谢了!
在 2016年1月29日星期五 UTC+8上午3:23:46,agentzh写道:
Hello!
2016-01-27 21:53 GMT-08:00 Lucien Li:
> 感谢, 在请教下春哥, 关于子请求, 请求是顺序请求, 响应是无序的, 怎样保证请求的和响应的对上。 因为我同时发送很多子请求,
> 怎么保证请求的和响应的是一致的?
>
这是通常是由 nginx 核心中的 ngx_http_postpone_filter_module 来自动保证的。
Regards,
-agentzh
Attachment:
5826.svg
Description: image/svg
Attachment:
5825.svg
Description: image/svg
Attachment:
5824.svg
Description: image/svg