热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

急、急、急,关于同时访问服务器人数过2万的问题。

此为一个在线考试的项目,并且从去年开发完之后就开始使用了。去年因客户需要赶进度,各方面功能完成后可能存在很多缺陷,当时没有太重视(重大失误啊),另外测试也是公司的一个薄弱环节。
        此为一个在线考试的项目,并且从去年开发完之后就开始使用了。去年因客户需要赶进度,各方面功能完成后可能存在很多缺陷,当时没有太重视(重大失误啊),另外测试也是公司的一个薄弱环节。
        自此常见的问题都暴露出来了,但是最为核心的问题来了。因考试项目只部署在一台服务器上,且是环境较为复杂的军综网(非互联网),前天考试有接近两万人同时在线,其中有两千多人都挤不进去(电话都打爆了,客户都是上帝啊,上帝都怒了,我们都吃不了兜着走)。于是我们再检查IIS的配置,尤其是并发连接数,设置了5万难道还不够吗?在这里请各位大神们介绍一下,是否跟程序本身有关系,还是IIS也存在一些问题?(程序登录模块采用的COOKIE来记录用户)

40 个解决方案

#1


在线等,急急急......

#2


2万登录跟2万并发不是一回事……
两千多人登录不了是web承受不了,还是数据库承受不了呢?
并发设置再高又有啥用,理论可以设置无上限,但你的服务器IO什么的要能达到才行啊
另外,可以的话还是做负载吧

卧槽,又是一个有钱的主,这么大的一个项目,还是军工项目,那得赚多少钱啊!

#3


引用 2 楼 starfd 的回复:
2万登录跟2万并发不是一回事……
两千多人登录不了是web承受不了,还是数据库承受不了呢?
并发设置再高又有啥用,理论可以设置无上限,但你的服务器IO什么的要能达到才行啊
另外,可以的话还是做负载吧

卧槽,又是一个有钱的主,这么大的一个项目,还是军工项目,那得赚多少钱啊!
 测试这个环节很薄弱,解决了同时提交的问题,登录这边就废了,根据客户那边的反映都是报404错误。客户那边说服务器是16GB的内存,存放资源应该不至于那么差劲吧。为什么接近2万却只有那么2000多人不能进去,和web承受不了有关吗?数据库的话应该问题不大吧!

#4


这哪有办法给你一两句排查解决的 你自己都说很复杂了,慢慢去跟代码吧

#5


16G内存跟能登陆多少人没有必然关系……
你们这么大的并发,压力测试都没测下啊,还是考虑负载均衡吧,或者你们都是内网,直接部署几台,然后每部分人访问对应的服务器就行了

#6


引用 5 楼 starfd 的回复:
16G内存跟能登陆多少人没有必然关系……
你们这么大的并发,压力测试都没测下啊,还是考虑负载均衡吧,或者你们都是内网,直接部署几台,然后每部分人访问对应的服务器就行了
这个军综网限制太多,测不了,我们这边就几台电脑,版本控制服务器都是PC机,按照实际的要求来,真的有点杯水车薪。

#7


看看能不能把这个问题抛给有这方面能力的公司,这样客户就很快满意了。要不然事就弄大了!

#8


2W在线需要10W+连接支撑是可能的,因为现在的浏览器为了“加速”都会与申请连接而且是Keep-Alive模式。
比如IE每个页面可能有2-3个连接,每个页面连接不共用,而chrome可能会一次申请6-8个连接,某些连接是多页公用的。

#9


引用 7 楼 sy401042879 的回复:
看看能不能把这个问题抛给有这方面能力的公司,这样客户就很快满意了。要不然事就弄大了!
这个问题也想过,但是客户特殊,估计把第三方公司介入进来有难度。

#10


引用 8 楼 sbwwkmyd 的回复:
2W在线需要10W+连接支撑是可能的,因为现在的浏览器为了“加速”都会与申请连接而且是Keep-Alive模式。
比如IE每个页面可能有2-3个连接,每个页面连接不共用,而chrome可能会一次申请6-8个连接,某些连接是多页公用的。
改连接能保证这个问题能解决?十分之一的人都登不了,想想还是有点多啊。这次两千多人又得等下个时间段补考了。如果反复这样,客户那边就有点交不了差了。

#11


引用 4 楼 rayyu1989 的回复:
这哪有办法给你一两句排查解决的 你自己都说很复杂了,慢慢去跟代码吧
代码本身如果存在很严重的问题,那么去年就不会扛过去了,功能上今年做了一些更改,经过了1万多人同时在线的考验。我们当初以为是登录人网络环境不好(有些单位网络环境确实很垃圾,丢包率只能呵呵了),但是通过打开军综网其他网站,又可以打开。所以排除了网络环境因素,如果单纯看代码,估计也找不出什么所以然了。

#12


不要怪我说的不好听,你们纯粹是在糊弄客户,像做小网站一样开发系统,也完全没有进行项目评估,没有金刚钻就敢去揽瓷器活。
看你挺急,一时间对系统进行大的修改可能你也来不及,现在给你指条自己可以搞定的明路,手段就是增加服务器,通过Server Farms对iis服务器进行负载均衡,将sql服务也独立出来。
整个配置很简单的,你可以去网上看如何通过Server Farms进行负载均衡,只是存在一个问题,那就是对Session的处理,不过你现在没有时间来改造系统将Session作为单独服务处理了,你可以采用在登录通过后对身份进行自定义算法加密后存于COOKIE中,曾经淘宝也曾用过这种方式,这给你救急是可以的,对系统改造的时间也会非常短。
救急归救急,可不要因为这样弄了就过关了,你还是需要对系统设计上存在的问题进行修正,服务器不合理的配置也要进行调整。

#13


简单啊,加机器呗。

考试系统,又不需要互联互通。先上Web集群,还是不行就上数据库集群。

要相信,再烂的系统,只要机器好,一样跑的飞一样。这种系统,肯定不会缺钱的吧

#14


先加机器把web服务器性能问题解决掉,如果还不行,就把数据库移到一台性能较好的机器上,如果还不行,在看下session代码之类的

#15


引用 10 楼 ttn2000 的回复:
Quote: 引用 8 楼 sbwwkmyd 的回复:

2W在线需要10W+连接支撑是可能的,因为现在的浏览器为了“加速”都会与申请连接而且是Keep-Alive模式。
比如IE每个页面可能有2-3个连接,每个页面连接不共用,而chrome可能会一次申请6-8个连接,某些连接是多页公用的。
改连接能保证这个问题能解决?十分之一的人都登不了,想想还是有点多啊。这次两千多人又得等下个时间段补考了。如果反复这样,客户那边就有点交不了差了。
该连接只能解决连接数不足引起的问题,解决不了其它性能瓶颈问题,比如当时故障发生时CPU是否90%+?数据库是否占用了90%+的CPU?内存占用是否90%+导致使用虚拟内存?

#16



     就像@xxoo2007 说的  再烂的系统 只要机器杠杠的  那就不是问题 

     目前最迅速的方法就是加机器   简单又粗暴  其它问题缓缓慢慢解决


#17


该回复于2015-07-21 08:54:24被管理员删除

#18


       我是一位在校生,部门有几台旧的服务器,老师让我们自己拿着玩玩,可是我们不知道该怎么去玩!

       我想问一问楼主,拿着几台课旧的服务器可以干些什么?这个旧的服务器还是可以用的,我这里也有条件能够使其借上网络。我对于服务器一直不怎么明白,不知道它具体的用途是什么?希望能够得到楼主的指点,谢谢。



#19


你们的产品经理和架构师的工作存在严重不足。设计产品后,设计测试用例的时候,要把这种迸发的测试场景考虑进去,也要考虑开发模拟迸发访问的测试工具。我一个亲身体会就是,我之前的一个项目,设计上位机软件的人嘴上吹的自己牛B哄哄的,但是做完软件,迸发访问一多,上位机软件就个屁。设计测试用例的时候,也根本没考虑这种场景。后来我们专门给他开发了模拟迸发访问的一个小工具,才帮着他把这个问题解决。

#20


引用 18 楼 dear_Alice_moon 的回复:
       我是一位在校生,部门有几台旧的服务器,老师让我们自己拿着玩玩,可是我们不知道该怎么去玩!

       我想问一问楼主,拿着几台课旧的服务器可以干些什么?这个旧的服务器还是可以用的,我这里也有条件能够使其借上网络。我对于服务器一直不怎么明白,不知道它具体的用途是什么?希望能够得到楼主的指点,谢谢。



搞个集群玩玩吧

#21


引用 20 楼 ligyu110 的回复:
Quote: 引用 18 楼 dear_Alice_moon 的回复:

       我是一位在校生,部门有几台旧的服务器,老师让我们自己拿着玩玩,可是我们不知道该怎么去玩!

       我想问一问楼主,拿着几台课旧的服务器可以干些什么?这个旧的服务器还是可以用的,我这里也有条件能够使其借上网络。我对于服务器一直不怎么明白,不知道它具体的用途是什么?希望能够得到楼主的指点,谢谢。



搞个集群玩玩吧


嗯,谢谢您。虽然我不懂什么叫做集群,还是谢谢你。我在自己有时间的时候去查查集群,捣腾下服务器,谢谢您。



#22


引用 3 楼 ttn2000 的回复:
解决了同时提交的问题,登录这边就废了,根据客户那边的反映都是报404错误。客户那边说服务器是16GB的内存,存放资源应该不至于那么差劲吧。为什么接近2万却只有那么2000多人不能进去,和web承受不了有关吗?数据库的话应该问题不大吧!


如果把注意力集中到“硬盘够不够大”岂不是更“酷”?为什么你满脑子只有什么内存、数据库呢?

你的日常编程设计的注意力,首先要集中到网络带宽上,然后是cpu占用上。应该先看最接近于用户的部分,而不是只会看最后端最低级的部分。

#23


如果你看看带宽在几分钟内是如何利用的,就知道该如何修改你的程序设计才能让提交速度提高100倍以上了。

#24


引用 11 楼 ttn2000 的回复:
代码本身如果存在很严重的问题,那么去年就不会扛过去了,功能上今年做了一些更改,经过了1万多人同时在线的考验。我们当初以为是登录人网络环境不好(有些单位网络环境确实很垃圾,丢包率只能呵呵了),但是通过打开军综网其他网站,又可以打开。所以排除了网络环境因素,如果单纯看代码,估计也找不出什么所以然了。


这说明过去你的考试程序的提交动作非常简单,起点定得草根创业的那种随意,而且一直是无法想象出真正用起来的第二次开发阶段时“下一步会遇到什么严重问题”。

#25


集群,加机器吧,简单高效,不用改代码这些的, HAProxy 和 Ngnix,lvs 也许可以帮你, 如果很有钱的话,F5也是很不错的方案

#26


引用 15 楼 sbwwkmyd 的回复:
Quote: 引用 10 楼 ttn2000 的回复:

Quote: 引用 8 楼 sbwwkmyd 的回复:

2W在线需要10W+连接支撑是可能的,因为现在的浏览器为了“加速”都会与申请连接而且是Keep-Alive模式。
比如IE每个页面可能有2-3个连接,每个页面连接不共用,而chrome可能会一次申请6-8个连接,某些连接是多页公用的。
改连接能保证这个问题能解决?十分之一的人都登不了,想想还是有点多啊。这次两千多人又得等下个时间段补考了。如果反复这样,客户那边就有点交不了差了。
该连接只能解决连接数不足引起的问题,解决不了其它性能瓶颈问题,比如当时故障发生时CPU是否90%+?数据库是否占用了90%+的CPU?内存占用是否90%+导致使用虚拟内存?

达到峰值的时候,CPU占有率不到60%,内存占有率不会超过6G,按照服务器配置来说,性能还有多余,远远没有达到服务器瓶颈。

#27


404页面加日志 或者在全局异常里加日志 你先要定位问题。
CPU或者内存超过50%会报警么  能做到这一点你也可以抓内存用windbug分析。
GC是会回收的 也许CPU超过80%的时候你也不知道

#28


同时两万。你是指同一秒还是一小时。
IIS不是做高并发的东西。换吧。

#29


考试提交,那么99.99%的内容在答题时就应该自动提交了,最后的提交动作在一瞬间就完毕了。如果你在最后才提交100%考试答卷,能不死掉吗?

#30


实际上,加载考卷也是如此。在打开页面时,考卷里边应该什么也没有!而用户当前看到哪一部分(滚动哪一部分,或者点击导航按钮而导航到哪一部分),才下载哪一部分;或者一次最多只给前段下载10条试题。

看你的描述,一个很简单、很任性的asp.net,能抗住1万人“考试”,用户可真是下了血本啊?!

但是如果你把这个系统当作一个“事业”来作,那么你应该有一个“无限扩展”的架构,扛得住1亿人同时考试,而不是2万人。

#31


引用 13 楼 xxoo2007 的回复:
简单啊,加机器呗。

考试系统,又不需要互联互通。先上Web集群,还是不行就上数据库集群。

要相信,再烂的系统,只要机器好,一样跑的飞一样。这种系统,肯定不会缺钱的吧


这种项目,暴利几乎全在机器上了。加机器就会引来审计。

#32


引用 26 楼 ttn2000 的回复:
Quote: 引用 15 楼 sbwwkmyd 的回复:

Quote: 引用 10 楼 ttn2000 的回复:

Quote: 引用 8 楼 sbwwkmyd 的回复:

2W在线需要10W+连接支撑是可能的,因为现在的浏览器为了“加速”都会与申请连接而且是Keep-Alive模式。
比如IE每个页面可能有2-3个连接,每个页面连接不共用,而chrome可能会一次申请6-8个连接,某些连接是多页公用的。
改连接能保证这个问题能解决?十分之一的人都登不了,想想还是有点多啊。这次两千多人又得等下个时间段补考了。如果反复这样,客户那边就有点交不了差了。
该连接只能解决连接数不足引起的问题,解决不了其它性能瓶颈问题,比如当时故障发生时CPU是否90%+?数据库是否占用了90%+的CPU?内存占用是否90%+导致使用虚拟内存?

达到峰值的时候,CPU占有率不到60%,内存占有率不会超过6G,按照服务器配置来说,性能还有多余,远远没有达到服务器瓶颈。
你在3#提到"根据客户那边的反映都是报404错误",正常情况来说404并非连接数问题(我对IIS不熟,不知道连接数问题是否会导致404),你至少需要把404的真实原因搞清楚才能做进一步的判断处理。

#33


我知道楼主说的是哪个系统了 试试看做负载均衡,用两台服务器配

#34


nginx集群吧

#35


如果时间比较赶,花钱上CDN去 省事

#36


引用 35 楼 believe_me 的回复:
如果时间比较赶,花钱上CDN去 省事


晕!

这不是因为“看新闻文章”而出问题,而是考试出了这个问题啊!

#37


可以将web和数据库服务分开   这样会减少很大的压力  多台服务器  不过成本就会提升很多   军工项目的话  应该不在乎这几个钱  这个也只能是应急   最后还是要考虑优化  能同时有1w+能做到成功不能证明程序问题   还是要后期坐下优化吧 

#38


说实在的,我只能说你们活该
水平不够接了国家单位的活,共同形成了对公款的不负责,对人民的犯罪
而且中间可能是透过关系以及种种内幕和腐败
怎么能给你支招???
难道让你们勾结起来像其它项目一样骗人民的血汗钱吗?
这种企业应该倒闭,这种官僚机构应当被打倒

#39



这么高的并发数,不知道楼主是怎么解决的。

#40


来学习下,楼主解决了的话,说说最后怎么解决的,呵呵

推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • TiDB | TiDB在5A级物流企业核心系统的应用与实践
    TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 服务网关与流量网关
    一、为什么需要服务网关1、什么是服务网关传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关& ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • adfs是什么_培训与开发的概念
    adfs是什么_培训与开发的概念(如您转载本文,必须标明本文作者及出处。如有任何疑问请与我联系me@nap7.com)ADFS相关开发技术的中文资料相对匮乏,之前在弄这个东西的时候 ... [详细]
  • 浅析对象 VO、DTO、DO、PO 概念
    作者|CatQi链接|cnblogs.comqixuejiap4390086.html前言由于此订阅号换了个皮肤,导致用户接受文章不及时。读者可以打开订阅号「Web项 ... [详细]
  • 目录Atlas介绍Atlas部署Atlas基本管理Atlas结合MHA故障恢复读写分离建议Atlas介绍Atlas是由Qihoo360Web平台部基础架构团队开发维护的一个基于My ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • 本文介绍了在MySQL8.0中如何查看性能并解析SQL执行顺序。首先介绍了查询性能工具的开启方法,然后详细解析了SQL执行顺序中的每个步骤,包括from、on、join、where、group by、having、select distinct、union、order by和limit。同时还介绍了虚拟表的概念和生成过程。通过本文的解析,读者可以更好地理解MySQL8.0中的性能查看和SQL执行顺序。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
author-avatar
潇潇-77
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有