高分请教大牛:如何设计能够达到100万QPS

pricks 2014-07-10 06:39:42
为了能够让问题变得简单,假设有以下限制:
1、服务器全部采用普通的服务器,价格1万5左右,2G内存,CPU主频2GHz
2、网络带宽:100M
3、假设使用lvs+nginx+tomcat,nginx做静态请求
4、假设nginx处理静态网页的并发量是2万/s

如何设计能够达到100万QPS。请描述大概需要几台lvs,几台nginx。

如果这种方式不能支持,应该需要怎么设计才能达到这么高的并发量?
...全文
12730 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2014-07-15
  • 打赏
  • 举报
回复
引用 9 楼 BiologyPianoProgram 的回复:
我有个疑问:为何很多博客里说,nginx优化的好,服务器内存放大点,甚至可以达到每秒10万、70万甚至200万的吞吐量呢?尤其是nginx官网上,如果使用64G内存,最大QPS可以达到200万!
这类测试都是极限测试,只考虑连接处理效率。也即是说页面规模和磁盘IO等都不是考量目标。 我几年前也做过这类测试,普通笔记本上面,Apache对1K大小的页面执行极限测试的话,QPS轻松逼近1W。 不过我没有研究Nginx官网上它的测试环境说明,不好具体进行评价。
引用 9 楼 BiologyPianoProgram 的回复:
另外,还有个疑问:很多博客中说,真实的web服务器,最高吞吐量能达到1000,就很高了。例如,百度的最大QPS也只有1万左右,并且这个数还是在百度使用了DNS+CDN之后的数据。如果百度有10个CDN节点,平均下来,每个cdn处的web服务器的最大吞吐量也只有1000左右。
真实系统的QPS严重取决于业务复杂度,这点你应该很清楚了。 不过百度最大QPS才1W,听起来相当不靠谱,至少也得放大10倍以上吧。
MiceRice 2014-07-15
  • 打赏
  • 举报
回复
这个也。。。说的太严重了。。。 应该说互相探讨,相互学习了
pricks 2014-07-15
  • 打赏
  • 举报
回复
引用 11 楼 ldh911 的回复:
[quote=引用 9 楼 BiologyPianoProgram 的回复:] 我有个疑问:为何很多博客里说,nginx优化的好,服务器内存放大点,甚至可以达到每秒10万、70万甚至200万的吞吐量呢?尤其是nginx官网上,如果使用64G内存,最大QPS可以达到200万!
这类测试都是极限测试,只考虑连接处理效率。也即是说页面规模和磁盘IO等都不是考量目标。 我几年前也做过这类测试,普通笔记本上面,Apache对1K大小的页面执行极限测试的话,QPS轻松逼近1W。 不过我没有研究Nginx官网上它的测试环境说明,不好具体进行评价。
引用 9 楼 BiologyPianoProgram 的回复:
另外,还有个疑问:很多博客中说,真实的web服务器,最高吞吐量能达到1000,就很高了。例如,百度的最大QPS也只有1万左右,并且这个数还是在百度使用了DNS+CDN之后的数据。如果百度有10个CDN节点,平均下来,每个cdn处的web服务器的最大吞吐量也只有1000左右。
真实系统的QPS严重取决于业务复杂度,这点你应该很清楚了。 不过百度最大QPS才1W,听起来相当不靠谱,至少也得放大10倍以上吧。[/quote] 感谢神的回答,一解我心中疑团! 就算分都给你,也不足以回报你的赐教!
pricks 2014-07-14
  • 打赏
  • 举报
回复
引用 8 楼 sp1234 的回复:
[quote=引用 楼主 BiologyPianoProgram 的回复:] 为了能够让问题变得简单,假设有以下限制: 1、服务器全部采用普通的服务器,价格1万5左右,2G内存,CPU主频2GHz 2、网络带宽:100M 3、假设使用lvs+nginx+tomcat,nginx做静态请求 4、假设nginx处理静态网页的并发量是2万/s 如何设计能够达到100万QPS。请描述大概需要几台lvs,几台nginx。 如果这种方式不能支持,应该需要怎么设计才能达到这么高的并发量?
需要3~20万台服务器。[/quote] 请问真实网站(例如百度、腾讯、阿里)的最大QPS一般是多少; 还有真实的web服务器的最大QPS一般是多少
pricks 2014-07-14
  • 打赏
  • 举报
回复
引用 7 楼 ldh911 的回复:
100Mbps 的带宽,要支持100万QPS,意味着每个查询只能分到 100bit 的流量,也即大约 12 字节流量,这系统貌似啥也干不了。。。 那么假定每个页面是 100KB,这个规模算是不大的吧。100万QPS约需要 100GBps 的流量,考虑到控制信号的开销,保底大概需要 1000Gbps 的实际带宽。 1Tbps的带宽,貌似没有负载均衡设备可以支持。所以恐怕要用 DNS 负载均衡 或 CDN 做第一级分流。
我有个疑问:为何很多博客里说,nginx优化的好,服务器内存放大点,甚至可以达到每秒10万、70万甚至200万的吞吐量呢?尤其是nginx官网上,如果使用64G内存,最大QPS可以达到200万! 我对此的猜测型分析是: 1、测试时,无论发起的请求,还是应答,整体数据都比较小,例如,1K。而实际上一个网页大小至少也得100K 2、测试时,有数据预热,将测试的网页全部加载到了内存中。而实际中,nginx提供服务时,有一部分网页是从硬盘上读取的。 另外,还有个疑问:很多博客中说,真实的web服务器,最高吞吐量能达到1000,就很高了。例如,百度的最大QPS也只有1万左右,并且这个数还是在百度使用了DNS+CDN之后的数据。如果百度有10个CDN节点,平均下来,每个cdn处的web服务器的最大吞吐量也只有1000左右。
  • 打赏
  • 举报
回复
引用 楼主 BiologyPianoProgram 的回复:
为了能够让问题变得简单,假设有以下限制: 1、服务器全部采用普通的服务器,价格1万5左右,2G内存,CPU主频2GHz 2、网络带宽:100M 3、假设使用lvs+nginx+tomcat,nginx做静态请求 4、假设nginx处理静态网页的并发量是2万/s 如何设计能够达到100万QPS。请描述大概需要几台lvs,几台nginx。 如果这种方式不能支持,应该需要怎么设计才能达到这么高的并发量?
需要3~20万台服务器。
MiceRice 2014-07-11
  • 打赏
  • 举报
回复
100Mbps 的带宽,要支持100万QPS,意味着每个查询只能分到 100bit 的流量,也即大约 12 字节流量,这系统貌似啥也干不了。。。 那么假定每个页面是 100KB,这个规模算是不大的吧。100万QPS约需要 100GBps 的流量,考虑到控制信号的开销,保底大概需要 1000Gbps 的实际带宽。 1Tbps的带宽,貌似没有负载均衡设备可以支持。所以恐怕要用 DNS 负载均衡 或 CDN 做第一级分流。
业余草 2014-07-11
  • 打赏
  • 举报
回复
引用 5 楼 BiologyPianoProgram 的回复:
[quote=引用 4 楼 xmt1139057136 的回复:] 没有配置过这样的,待测试
那你们一般是咋配置的呢? 另外,啥时候测?[/quote] 这方面需要我向你学习,我不懂!!!我是小白!!!
pricks 2014-07-11
  • 打赏
  • 举报
回复
引用 4 楼 xmt1139057136 的回复:
没有配置过这样的,待测试
那你们一般是咋配置的呢? 另外,啥时候测?
pricks 2014-07-10
  • 打赏
  • 举报
回复
今天大牛们集体休息啦
业余草 2014-07-10
  • 打赏
  • 举报
回复
没有配置过这样的,待测试
pricks 2014-07-10
  • 打赏
  • 举报
回复
难道我问的这个问题太弱智?

25,980

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧