高并发设计,大家发表下意见 谢谢

liuwanlin 2014-07-02 09:18:21
需求,总用户大概50万。实际登录用户为35万左右。要求响应时间为<500ms。要求用户并发数为10万(用户并发数是个啥东西)

要算网络带宽、WEB服务器配置以及个数、数据库配置以及数据库服务器配置,要求考虑南北网络问题

前端技术用.NET,发布采用IIS7.0,服务器安装操作系统为windows server 2008R2,
数据库为oracle,
负载均衡可提供F5,


怎么分析出需要的各类服务器以及配置呢,这些服务器、存储等的参数各是多少呢


多谢各位啦 我是小白一个啊


4年没发帖了 好生疏了啊
...全文
4365 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeffsc 2015-06-03
  • 打赏
  • 举报
回复
基本设计都想到了,补充一点,前台的页面有些可以静态化html输出。
senner_ 2014-11-24
  • 打赏
  • 举报
回复
硬着头皮看完了,完全不知道大神们在说什么。
猿人林克 2014-11-23
  • 打赏
  • 举报
回复
引用 27 楼 ooppookid 的回复:
隐约记得今年前半年,大约四五月份淘宝同时在线人数历史性超过50w,也就是说去年双11都没50w,你们是要做个比淘宝交互量还大的采购系统????
错了 500w
猿人林克 2014-11-23
  • 打赏
  • 举报
回复
隐约记得今年前半年,大约四五月份淘宝同时在线人数历史性超过50w,也就是说去年双11都没50w,你们是要做个比淘宝交互量还大的采购系统????
猿人林克 2014-11-23
  • 打赏
  • 举报
回复
一个采购系统需要10w的并发?你看看淘宝的峰值有没有到10w(除了双11这种),除了12306的春运估计这种并发是不会出现的。 35w同时在线?呵呵,同理,去看看国内大型互联网论坛或者网站,有几个超过30w同时在线的。 如果是企业,国内有哪个公司有35w人的用户量,生产企业人多把,把所有分公司的工人都算上估计也不会有这么多人,更不用说用户量了。 而且35w同时在线的系统一年不超过20g数据?你们用户每天登录一下日志什么的都不止这个数。 你们提这个需求的人要么太过高端,我等无法理解,要么就是有点naocan,完全是坑爹。
  • 打赏
  • 举报
回复
这个是一个长期的课题,表示关注,同时我们也有类似的场景; 期待大容量高并发的网络系统平台能够有一套设计和规划,并且支持后期开发维护运营。 这得烧掉多少钱? 如果我们是服务提供方,怎么做到对很多客户的维护和升级?客户升级一次就要累4了吗?
a545358072 2014-10-23
  • 打赏
  • 举报
回复
看楼主是要求,一般应用服务器很难满足你的需求了(后期还有增长),我觉得还是自己开发一个服务器比较好,譬如用NETTY开发出HTTP服务器,这样一来有很强的扩展性,最重要的是自己开发,知道重点啊!就这点愚见,欢迎大家拍砖
hchxxzx 2014-10-17
  • 打赏
  • 举报
回复
1.并发数的问题:按楼主的说法,35万是经常使用的用户,同时在线的为10万,如果是实际观察得出的结果,那么按照概率来说,这个同时在线数量还是可以相对稳定的。但显然这个系统还没有出来,不一定有这么大的量;但我们按照这个数量级来计算。一般来说,在线用户并不相等于并发数量,通常二者之间的比较,在10-20:1的关系,也就是说根据不同的业务形态,每个在线用户每10秒20秒钟会刷新一次,10万个在线用户需要1万的并发(最多),这个并发数量已经很高了。通常,按照常规企业管理系统模式开发出来的系统,并发数量能够达到100就不错了,达到200已经很优秀了;想要上到成千上万的高并发,绝对不能按照常规的架构和代码来实现,因为首先数据库就撑不住了。因此,需要从多个方面考虑来解决性能的问题。 2.尽可能的减少对数据库的请求 数据库的性能是最有限的,为了满足高并发的要求,需要放弃对数据库的依赖。在代码实现中要尽一切可能减少对数据库的请求。理想条件下,除添加、修改、删除这三种操作之外,所有的查询操作都需要尽一切可能的减少数据库进行操作;同时,数据库的设计也非常关键,表之间的关系层级越少越好,复杂度要低,要有一定的冗余度(比如冗余字段或JSON字段等)。同时,数据库的字段尽可能使用简单字段(比如clob/blob等大字段尽可能不使用) 3.多种数据存储方式并存 出于降低数据库压力的要求,应当尽可能实现:简单的数据存储于数据库,复杂的数据存储于非常规数据库。比如说,附件上传下载应当使用独立的服务器进行(硬盘存储或分布式文件系统);类似于新闻内容这样的大文本,存储到硬盘或分布式文件系统或其他数据库如mongodb中。使用多种数据存储方式存储数据,相当于使用多台数据库同时进行数据存储。 4.大量应用数据缓存 为什么要尽可能的降低数据库的压力?因为数据库的操作性能往往受到磁盘存储的约束,其并发性能难以得到质的提升。因此,需要采取其他方法来提升数据读取的并发能力,最好的办法,一是较大量应用本地缓存,二是全面使用NOSQL分布式缓存。从性能上来说,本地缓存的并发性能是最佳的,因为不存在网络往返解析,数据存储于本地内存中运行速度极快。简单来说,NOSQL的并发性能10倍于数据库,而本地缓存并发则100倍于NOSQL。但本地缓存最大的问题一是在于WEB服务器内存受到物理限制,二是受到分布式系统数据同步更新的限制。因此,本地缓存应当有所筛选,按照:最常用、数据变动最少、数据量小这几个原则建立本地缓存。 另外,NOSQL是提升系统并发能力的重要环节。由于常规的NOSQL比如memcache、redis数据是存储于内存中,因此,其按KEY查找数据的速度非常快,也就是并发性能非常高,这个特点在高并发的系统中极其关键。使用NOSQL可以大幅提升系统的并发能力。但有几点需要注意:一是不要在NOSQL中存储较大的文本,因为NOSQL需要通过网络进行请求、传输、转换数据,单条数据的数据量越大,其传输速度越低,非常影响并发性能;二是不要在NOSQL中进行查询操作(如REDIS),NOSQL先天就不是为条件查询数据而产生的,因此,它的条件查询(有提供的话)性能非常之低劣。 5.代码与图片分服务器运行 通常,服务端后台输出的业务数据流量大小远远小于图片、脚本、样式等文件的流量,而且,由于高并发与网页展现特性的矛盾,对于WEB所需要的图片、脚本、样式等文件,应当独立存储(或多台并行)。同时,给予WEB服务器较低带宽即可满足需,而非WEB服务器则需要较高的带宽(也可结合CDN提升图片等的展现速度) 6.使用成熟的工具套件,降低WEB流量输出 使用成熟的工具套件如easyui/miniui或类似的工具套件,可以大幅降低WEB服务器对外的流量,从而在相同的带宽条件下承载更高的访问量,也可以降低服务器输出压力从而提升性能(实际上是把所有用户的机器间接作为服务器来使用)。 7.代码优化 高并发的系统,离不开高性能的代码。但高并发的系统往往需要一个较大的团队协作开发,无法保证每个人写的代码都是高性能的。但可以采取一定的方法,限制低性能的代码出现。比如在系统中建立良好的运行性能监控机制以监视性能低的代码和方法,因为通常系统并发性能低的原因,除了系统整体架构之外,经常是被某些常用的低性能代码段所拖累。此外,高性能代码的编写思路,与常规的方式经常有所不同,往往要更复杂一些。 8.其他 比如消息队列的使用;比如大数据表分表或分区;权限判断性能的提升等。 做到如上几点,一般来说,单台WEB达到1000个并发应该是不难的;按照上述的10万在线、1万并发,所需要的WEB服务器10台以下可以达到,当然,还必须配合若干台负载均衡服务器、数据库服务器、图片服务器、大文件服务器、分布式缓存服务器等。
CsDn自贡人 2014-09-29
  • 打赏
  • 举报
回复
这个问题不是疏忽啊, 采用负载均衡。首先系统就要更换了嘛。建议换成Linux的。 楼主给的问题不明确啊,没办法提供详细思路。 并发是每秒的请求数量,楼主的WEB是什么应用?
micro19890 2014-09-01
  • 打赏
  • 举报
回复
按你现在说的,你的需求其实挺大的,绝对不是一般的小网站,不仅仅是你的性能需求,你的业务需求也应该挺大吧。若果你真的是小白,我建议你好好整理一下需求,要不很能整理出好的解决方案。
skgary 2014-08-17
  • 打赏
  • 举报
回复
引用 14 楼 moeryang 的回复:
nginx 并发数也才号称10万个,而且是静态的。 10万用户的在线,我没记错的话,几年前天涯也才这个数字吧。 10万个用户也不等同于10万个并发,我这里理解的并发是每秒的请求数。 可以用一个nginx做前端,后端假设几个iis,每个iis后面可以连多个数据库,或者所有iis连接一个数据库, session 和cahe 可以考虑用memocahe 之类的。 每天几百万的pv应该可以简单旧撑起来。
服务器的并发数和论坛的并发用户数完全就不是一个概念。
探花 2014-08-16
  • 打赏
  • 举报
回复
引用 5 楼 BiologyPianoProgram 的回复:
[quote=引用 4 楼 qqqq764065388 的回复:] 感觉你用的这些肯定不行,微软的东西好像从来就整不了高大上。
后端处理动态的页面,其实.NET和JAVA都差不多一个鸟样,都很差 可以在前端加个静态化吧,使用高性能的web程序,一秒一两万的并发量还是可以达到的[/quote] SB!
skgary 2014-08-05
  • 打赏
  • 举报
回复
引用 楼主 liuwanlin 的回复:
需求,总用户大概50万。实际登录用户为35万左右。要求响应时间为<500ms。要求用户并发数为10万(用户并发数是个啥东西) 要算网络带宽、WEB服务器配置以及个数、数据库配置以及数据库服务器配置,要求考虑南北网络问题 前端技术用.NET,发布采用IIS7.0,服务器安装操作系统为windows server 2008R2, 数据库为oracle, 负载均衡可提供F5, 怎么分析出需要的各类服务器以及配置呢,这些服务器、存储等的参数各是多少呢 多谢各位啦 我是小白一个啊 4年没发帖了 好生疏了啊
其实就是数据库里50W用户,其中只有35万是经常用的,10万用户是同时用的。 缺的数据是,10万用户大概一个页面停留几秒呢?一个页面大概会有多少CSS,图片呢?一个页面中,平均的数据库访问会有几次呢? 假设,用户在一个页面上停留100秒,那么,就是1000page/s 一个page 1M的图片+js+css 那么你至少 需要G以上的网络,也有可能2GE 如果你1个页面就有一个数据库操作且不可缓存,那就有1000个数据库操作/s了。 算下来,你oracle对应的存贮要求就非常高了。 PS,放弃windows吧,没法算了。 当然,也有可能你前面的数据是有错误的,做不到10W以上的用户并发
求道者 2014-08-02
  • 打赏
  • 举报
回复
引用 3 楼 ldh911 的回复:
这个数字给的有点问题:“35万用户同时在线,10万的登录用户”: 1、35万用户同时在线是怎么个在线法?Web系统一般来说有超时问题,你35万用户同时在线,大家都在不停的操作么? 2、10万的登录用户,这个跟前面的说法简直有矛盾,不可能时刻都有10W个用户在玩登录操作对吧? 如果要认真估算,大致流程如下: 1、用户规模估算,也就是注册用户数,这个会影响到存储量规模; 2、在线用户数估算,也就是正常时段下,登录后且未超时的用户规模大致多少; 3、业务总量估算,也就是每个用户每年或每月或每天可能会发生多少业务量,这个也会影响到存储规模; 4、功能分布估算,你的系统有很多种功能,比如:登录、浏览商品、查询检索、查看商品明细、下订单 等等,要把主要功能列出来,然后估计其业务量的分布情况。比如:每个用户登录后、然后浏览5页的商品、做12次过滤检索、看20个商品明细、下0.5个订单。 5、根据用户量和业务总量和功能分布,计算出每个功能所需分摊的业务处理量; 6、根据用户服务时段(什么时间段最喜欢来你网站上玩)估算平均并发规模 和 峰值并发规模(一般可按平均的4倍处理); 7、功能规模估算,每个功能自己有自己的规模,包括:页面大小规模、数据提交量规模、数据库访问量规模、内存开销规模和计算开销规模等。 8、根据上述规模 和 功能分布,综合估算出 网络流量、计算开销。 计算开销其实很难精确估算,一般都是按TPMC来粗略估算,也即一次简单SQL查询语句,大约消耗多少个TPMC值;一次复杂SQL查询,大约小号多少TPMC值;等等。主流服务器的TPMC值可以在网上查得到。 最后,如果你们还有精力,就要进行估算回归,也就是开发一个原型系统,然后做并发测试进行估算验证,最终修正估算结果。
赞!!分析的很透彻,学习。
程序员-阿勇 2014-07-25
  • 打赏
  • 举报
回复
引用 3 楼 ldh911 的回复:
这个数字给的有点问题:“35万用户同时在线,10万的登录用户”: 1、35万用户同时在线是怎么个在线法?Web系统一般来说有超时问题,你35万用户同时在线,大家都在不停的操作么? 2、10万的登录用户,这个跟前面的说法简直有矛盾,不可能时刻都有10W个用户在玩登录操作对吧? 如果要认真估算,大致流程如下: 1、用户规模估算,也就是注册用户数,这个会影响到存储量规模; 2、在线用户数估算,也就是正常时段下,登录后且未超时的用户规模大致多少; 3、业务总量估算,也就是每个用户每年或每月或每天可能会发生多少业务量,这个也会影响到存储规模; 4、功能分布估算,你的系统有很多种功能,比如:登录、浏览商品、查询检索、查看商品明细、下订单 等等,要把主要功能列出来,然后估计其业务量的分布情况。比如:每个用户登录后、然后浏览5页的商品、做12次过滤检索、看20个商品明细、下0.5个订单。 5、根据用户量和业务总量和功能分布,计算出每个功能所需分摊的业务处理量; 6、根据用户服务时段(什么时间段最喜欢来你网站上玩)估算平均并发规模 和 峰值并发规模(一般可按平均的4倍处理); 7、功能规模估算,每个功能自己有自己的规模,包括:页面大小规模、数据提交量规模、数据库访问量规模、内存开销规模和计算开销规模等。 8、根据上述规模 和 功能分布,综合估算出 网络流量、计算开销。 计算开销其实很难精确估算,一般都是按TPMC来粗略估算,也即一次简单SQL查询语句,大约消耗多少个TPMC值;一次复杂SQL查询,大约小号多少TPMC值;等等。主流服务器的TPMC值可以在网上查得到。 最后,如果你们还有精力,就要进行估算回归,也就是开发一个原型系统,然后做并发测试进行估算验证,最终修正估算结果。
怒赞,看到这位大师的提问,学到很多东西,特别是考虑问题的方式
moeryang 2014-07-24
  • 打赏
  • 举报
回复
nginx 并发数也才号称10万个,而且是静态的。 10万用户的在线,我没记错的话,几年前天涯也才这个数字吧。 10万个用户也不等同于10万个并发,我这里理解的并发是每秒的请求数。 可以用一个nginx做前端,后端假设几个iis,每个iis后面可以连多个数据库,或者所有iis连接一个数据库, session 和cahe 可以考虑用memocahe 之类的。 每天几百万的pv应该可以简单旧撑起来。
grapepaul 2014-07-23
  • 打赏
  • 举报
回复
需要一个对高并发,负载有经验的技术人员
www_7di_net 2014-07-21
  • 打赏
  • 举报
回复
IIS支撐難啊,windows服務器不要指望了 可是如果換linux也難啊,畢竟是.net開發的,汗一個
「已注销」 2014-07-18
  • 打赏
  • 举报
回复
看你们讨论的好开心,我就问一句。头像下面的名称怎么改。为什么我的都一样啊。
业余草 2014-07-18
  • 打赏
  • 举报
回复
f5是硬件负载,你再搞些软件负载,比如nginx,apache,数据库负载等等,解决高并发问题
加载更多回复(9)

25,985

社区成员

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

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