作者:潇潇-77 | 来源:互联网 | 2023-09-01 10:09
此为一个在线考试的项目,并且从去年开发完之后就开始使用了。去年因客户需要赶进度,各方面功能完成后可能存在很多缺陷,当时没有太重视(重大失误啊),另外测试也是公司的一个薄弱环节。
此为一个在线考试的项目,并且从去年开发完之后就开始使用了。去年因客户需要赶进度,各方面功能完成后可能存在很多缺陷,当时没有太重视(重大失误啊),另外测试也是公司的一个薄弱环节。
自此常见的问题都暴露出来了,但是最为核心的问题来了。因考试项目只部署在一台服务器上,且是环境较为复杂的军综网(非互联网),前天考试有接近两万人同时在线,其中有两千多人都挤不进去(电话都打爆了,客户都是上帝啊,上帝都怒了,我们都吃不了兜着走)。于是我们再检查IIS的配置,尤其是并发连接数,设置了5万难道还不够吗?在这里请各位大神们介绍一下,是否跟程序本身有关系,还是IIS也存在一些问题?(程序登录模块采用的COOKIE来记录用户)
40 个解决方案
2万登录跟2万并发不是一回事……
两千多人登录不了是web承受不了,还是数据库承受不了呢?
并发设置再高又有啥用,理论可以设置无上限,但你的服务器IO什么的要能达到才行啊
另外,可以的话还是做负载吧
卧槽,又是一个有钱的主,这么大的一个项目,还是军工项目,那得赚多少钱啊!
这哪有办法给你一两句排查解决的 你自己都说很复杂了,慢慢去跟代码吧
16G内存跟能登陆多少人没有必然关系……
你们这么大的并发,压力测试都没测下啊,还是考虑负载均衡吧,或者你们都是内网,直接部署几台,然后每部分人访问对应的服务器就行了
看看能不能把这个问题抛给有这方面能力的公司,这样客户就很快满意了。要不然事就弄大了!
2W在线需要10W+连接支撑是可能的,因为现在的浏览器为了“加速”都会与申请连接而且是Keep-Alive模式。
比如IE每个页面可能有2-3个连接,每个页面连接不共用,而chrome可能会一次申请6-8个连接,某些连接是多页公用的。
不要怪我说的不好听,你们纯粹是在糊弄客户,像做小网站一样开发系统,也完全没有进行项目评估,没有金刚钻就敢去揽瓷器活。
看你挺急,一时间对系统进行大的修改可能你也来不及,现在给你指条自己可以搞定的明路,手段就是增加服务器,通过Server Farms对iis服务器进行负载均衡,将sql服务也独立出来。
整个配置很简单的,你可以去网上看如何通过Server Farms进行负载均衡,只是存在一个问题,那就是对Session的处理,不过你现在没有时间来改造系统将Session作为单独服务处理了,你可以采用在登录通过后对身份进行自定义算法加密后存于COOKIE中,曾经淘宝也曾用过这种方式,这给你救急是可以的,对系统改造的时间也会非常短。
救急归救急,可不要因为这样弄了就过关了,你还是需要对系统设计上存在的问题进行修正,服务器不合理的配置也要进行调整。
简单啊,加机器呗。
考试系统,又不需要互联互通。先上Web集群,还是不行就上数据库集群。
要相信,再烂的系统,只要机器好,一样跑的飞一样。这种系统,肯定不会缺钱的吧
先加机器把web服务器性能问题解决掉,如果还不行,就把数据库移到一台性能较好的机器上,如果还不行,在看下session代码之类的
就像@xxoo2007 说的 再烂的系统 只要机器杠杠的 那就不是问题
目前最迅速的方法就是加机器 简单又粗暴 其它问题缓缓慢慢解决
你们的产品经理和架构师的工作存在严重不足。设计产品后,设计测试用例的时候,要把这种迸发的测试场景考虑进去,也要考虑开发模拟迸发访问的测试工具。我一个亲身体会就是,我之前的一个项目,设计上位机软件的人嘴上吹的自己牛B哄哄的,但是做完软件,迸发访问一多,上位机软件就个屁。设计测试用例的时候,也根本没考虑这种场景。后来我们专门给他开发了模拟迸发访问的一个小工具,才帮着他把这个问题解决。
如果你看看带宽在几分钟内是如何利用的,就知道该如何修改你的程序设计才能让提交速度提高100倍以上了。
集群,加机器吧,简单高效,不用改代码这些的, HAProxy 和 Ngnix,lvs 也许可以帮你, 如果很有钱的话,F5也是很不错的方案
404页面加日志 或者在全局异常里加日志 你先要定位问题。
CPU或者内存超过50%会报警么 能做到这一点你也可以抓内存用windbug分析。
GC是会回收的 也许CPU超过80%的时候你也不知道
同时两万。你是指同一秒还是一小时。
IIS不是做高并发的东西。换吧。
考试提交,那么99.99%的内容在答题时就应该自动提交了,最后的提交动作在一瞬间就完毕了。如果你在最后才提交100%考试答卷,能不死掉吗?
实际上,加载考卷也是如此。在打开页面时,考卷里边应该什么也没有!而用户当前看到哪一部分(滚动哪一部分,或者点击导航按钮而导航到哪一部分),才下载哪一部分;或者一次最多只给前段下载10条试题。
看你的描述,一个很简单、很任性的asp.net,能抗住1万人“考试”,用户可真是下了血本啊?!
但是如果你把这个系统当作一个“事业”来作,那么你应该有一个“无限扩展”的架构,扛得住1亿人同时考试,而不是2万人。
可以将web和数据库服务分开 这样会减少很大的压力 多台服务器 不过成本就会提升很多 军工项目的话 应该不在乎这几个钱 这个也只能是应急 最后还是要考虑优化 能同时有1w+能做到成功不能证明程序问题 还是要后期坐下优化吧
说实在的,我只能说你们活该
水平不够接了国家单位的活,共同形成了对公款的不负责,对人民的犯罪
而且中间可能是透过关系以及种种内幕和腐败
怎么能给你支招???
难道让你们勾结起来像其它项目一样骗人民的血汗钱吗?
这种企业应该倒闭,这种官僚机构应当被打倒
来学习下,楼主解决了的话,说说最后怎么解决的,呵呵