⾼分请问⼤⽜:怎么设计能够达到100万QPS
⾼分请教⼤⽜:如何设计能够达到100万QPS
为了能够让问题变得简单,假设有以下限制:
1、服务器全部采⽤普通的服务器,价格1万5左右,2G内存,CPU主频2GHz
2、⽹络带宽:100M
3、假设使⽤lvs+nginx+tomcat,nginx做静态请求
4、假设nginx处理静态⽹页的并发量是2万/s
如何设计能够达到100万QPS。请描述⼤概需要⼏台lvs,⼏台nginx。
如果这种⽅式不能⽀持,应该需要怎么设计才能达到这么⾼的并发量?服务器
------解决⽅案--------------------
没有配置过这样的,待测试
-
-----解决⽅案--------------------
100Mbps 的带宽,要⽀持100万QPS,意味着每个查询只能分到 100bit  的流量,也即⼤约 12 字节流量,这系统貌似啥也⼲不了。。。
那么假定每个页⾯是 100KB,这个规模算是不⼤的吧。100万QPS约需要 100GBps 的流量,考虑到控制信号的开销,保底⼤概需
要 1000Gbps 的实际带宽。
1Tbps的带宽,貌似没有负载均衡设备可以⽀持。所以恐怕要⽤ DNS 负载均衡或 CDN 做第⼀级分流。
------解决⽅案--------------------
引⽤:
为了能够让问题变得简单,假设有以下限制:
1、服务器全部采⽤普通的服务器,价格1万5左右,2G内存,CPU主频2GHz
2、⽹络带宽:100M
3、假设使⽤lvs+nginx+tomcat,nginx做静态请求
4、假设nginx处理静态⽹页的并发量是2万/s
如何设计能够达到100万QPS。请描述⼤概需要⼏台lvs,⼏台nginx。
如果这种⽅式不能⽀持,应该需要怎么设计才能达到这么⾼的并发量?
需要3~20万台服务器。
------解决⽅案--------------------
引⽤:
我有个疑问:为何很多博客⾥说,nginx优化的好,服务器内存放⼤点,甚⾄可以达到每秒10万、70万甚⾄200万的吞吐量
呢?尤其是nginx官⽹上,如果使⽤64G内存,最⼤QPS可以达到200万!
这类测试都是极限测试,只考虑连接处理效率。也即是说页⾯规模和磁盘IO等都不是考量⽬标。
我⼏年前也做过这类测试,普通笔记本上⾯,Apache对1K⼤⼩的页⾯执⾏极限测试的话,QPS轻松逼近1W。
不过我没有研究Nginx官⽹上它的测试环境说明,不好具体进⾏评价。
引⽤:
另外,还有个疑问:很多博客中说,真实的web服务器,最⾼吞吐量能达到1000,就很⾼了。例如,百度的最⼤QPS也只有1万左右,并且这个数还是在百度使⽤了DNS+CDN之后的数据。如果百度有10个CDN节点,平均下来,每个cdn处的web 服务器的最⼤吞吐量也只有1000左右。
真实系统的QPS严重取决于业务复杂度,这点你应该很清楚了。
不过百度最⼤QPS才1W,听起来相当不靠谱,⾄少也得放⼤10倍以上吧。