如何确定ASP.NET应用程序的最大负荷?最大并发量等?

轻舟已过万重山 2010-03-15 02:12:04
如何确保设计的系统的最大负荷,最大并发等。或者,要求什么样的服务器配置等。
...全文
464 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
骄傲青蛙 2010-03-21
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 zzxap 的回复:]

生成静态页面。并发的瓶颈就在硬件了。跟程序和数据库无关了。
[/Quote]


精辟 .......
vip__888 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 babyt 的回复:]
引用 17 楼 skytear 的回复:
引用 14 楼 dreamdragon2007 的回复:

3.我需要的是:根据用户的需求,比如有一个极端的场景,比如说最大并发的时候,我们需要的CUP的计算能力,内存多少,以及服务器需要的带宽是如何计算的。……


如10楼的朋友所说,在系统开发之前,应该确定一个极限目标,比如说2000人并发。
或者阶段性目标,比如三个月内支持2000并发……
[/Quote]
up
阿泰 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 skytear 的回复:]
引用 14 楼 dreamdragon2007 的回复:

3.我需要的是:根据用户的需求,比如有一个极端的场景,比如说最大并发的时候,我们需要的CUP的计算能力,内存多少,以及服务器需要的带宽是如何计算的。……
[/Quote]

如10楼的朋友所说,在系统开发之前,应该确定一个极限目标,比如说2000人并发。
或者阶段性目标,比如三个月内支持2000并发,之后5000等。

这个目标对于系统架构和硬件配置都有指导意义,
比如说一个内网百八十人的BS系统,用新浪那种模式去架构(当然,我不知道新浪是如何架构的)
那杀鸡用牛刀了。

对于一个既有系统,可以使用LoadRunner等压力测试工具,逐级加压
LoadRunner可以生成CPU的实用情况,页面响应时间等一系列报告。
等到了极限后(极限并不是说压死了才是极限,而是能正常运行,且响应速度在用户的最低接收程度时。当然,对于极限的定义会根据不同项目不同客户也不同),再来仔细分析。

此时我们大致就可以得出这样一个结论:
在当前的硬件配置下,该服务器能承受多少并发。
以这个为参考来确定你的系统对硬件的消耗能力,从而根据目标来确定硬件配置。

另外这个极限是不是已经满足了客户的需求,
如果没有的话,是否单纯可以通过硬件升级来解决
或者时间允许的话,是不是可以通过系统改造来解决。

对于大并发,是需要软件硬件都要配套的。
比如,
最基础的,页面静态化。
应用服务器与数据库服务器分离
垂直切割数据库
水平切割数据库
多台应用服务器
增加专门的缓存服务器
多台数据库服务器

当然,也要与客户沟通,
客户当然是希望系统越强悍越好,但是也要根据他的实际情况来理性定义。
zzxap 2010-03-17
  • 打赏
  • 举报
回复
生成静态页面。并发的瓶颈就在硬件了。跟程序和数据库无关了。
teerhu 2010-03-17
  • 打赏
  • 举报
回复
這帖值得看
學習...
  • 打赏
  • 举报
回复
感谢楼上的。

CSDN不是还有传说中的高手吗?这个问题应该是非常普遍的啊。
For_Ever_Do_ 2010-03-17
  • 打赏
  • 举报
回复
loadrunner 好像是叫这个名字 你试试
加油馒头 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 skytear 的回复:]
引用 14 楼 dreamdragon2007 的回复:

如果只是方案,这种情况在需求分析的时候就要提交出来的,很正常,以前做了这么个项目,在需求的时候客户就有了这方面的要求

一般来说关于并发数,最大负荷等,这要从多方面考虑,给客户的方案方面基本的都是
一、关于硬件方面,个人电脑与服务器(即使是是低配置的服务器)还是有区别的,所以要列出一个服务器的配置,并要说明这样的配置有什么好处
……
[/Quote]

你有点杞人忧天了,如果每个人都想你这样做的话,谁也做不成软件了。。

客户只是在初期提出他的想法与大概的要求,你可以分析他的要求,在回去讨论之后给以答复

再说一个吞吐量2000的WEB系统不是大的或者是难的系统,只要做的时候,注意下缓存,硬件,网络 一般没什么大问题

也许是经验的因素,让你如此害怕。。。。
xingshungames 2010-03-16
  • 打赏
  • 举报
回复
这个真是要学习。。。
xuyiazl 2010-03-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 skytear 的回复:]
问题是:
在做一个解决方案,设计一个技术方案的时候,啥都还没有,不可能做压力测试。
比如:用户说,你给我设计一个能同时相应2000个并发的系统,你的方案是?
[/Quote]

2000的并发不算啥。。。
xuyiazl 2010-03-16
  • 打赏
  • 举报
回复
给客户的方案还是尽量保守一点。。。 不然给出方案 别人说不做了。。结果方案在别的公司那。。
向东 2010-03-16
  • 打赏
  • 举报
回复
学习了。。。。。。。。。。。
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 dreamdragon2007 的回复:]

如果只是方案,这种情况在需求分析的时候就要提交出来的,很正常,以前做了这么个项目,在需求的时候客户就有了这方面的要求

一般来说关于并发数,最大负荷等,这要从多方面考虑,给客户的方案方面基本的都是
一、关于硬件方面,个人电脑与服务器(即使是是低配置的服务器)还是有区别的,所以要列出一个服务器的配置,并要说明这样的配置有什么好处
比如:冗余、响应时间、缓存(内存)等,这些在服务器配置的时候……
[/Quote]


谢谢,挺有帮助的。
但是这样会让客户怀疑。
1.你这个东西考经验的吧,没有具体的理论和数据基础,那么我是不是按早你的方案做一套软件,买上一套硬件,申请一个带宽,到时候不行了你再帮我调。调也不行了,是不是重新买硬件啊?极端情况下,是不是连软件都要重新实现呢?

2.如此,客户怎么可能会选择你呢?

3.我需要的是:根据用户的需求,比如有一个极端的场景,比如说最大并发的时候,我们需要的CUP的计算能力,内存多少,以及服务器需要的带宽是如何计算的。
lilin8905 2010-03-15
  • 打赏
  • 举报
回复
study.....
randomfeel 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 skytear 的回复:]
问题是:
在做一个解决方案,设计一个技术方案的时候,啥都还没有,不可能做压力测试。
比如:用户说,你给我设计一个能同时相应2000个并发的系统,你的方案是?
[/Quote]


这个只能靠经验了,如果你曾经做过一个解决方案,经过压力测试,甚至是用户实际测试,发觉并发超过1000就难以承受,那么你再去改善,优化程序或者升级硬件等,解决后可以达到2000并发没问题。那就知道用什么解决方案啦
dreamdragon2007 2010-03-15
  • 打赏
  • 举报
回复
如果只是方案,这种情况在需求分析的时候就要提交出来的,很正常,以前做了这么个项目,在需求的时候客户就有了这方面的要求

一般来说关于并发数,最大负荷等,这要从多方面考虑,给客户的方案方面基本的都是
一、关于硬件方面,个人电脑与服务器(即使是是低配置的服务器)还是有区别的,所以要列出一个服务器的配置,并要说明这样的配置有什么好处
比如:冗余、响应时间、缓存(内存)等,这些在服务器配置的时候,就可以知道了
二、关于网络
ASDL与光纤当然不是一个档次的,还有地区,上海,北京这些大城市的响应与小城市当然也不同
三、关于软件
首先:考虑的是数据库,特别是数据库的吞吐量,还有数据库对大容量数据的搜索优化等
如果是很特别的情况,可以用MySql来定制,一般使用的MSSQL,如果数据量非常非常大,那种上千万级别的,就用oracle好了
其次:考虑的是服务器软件,这个没有多少选择,重要是在配置方面,比如:IIS的版本等
然后:就是平台,一般软件在需求的时候平台就已经选择好了,比如:.net2005 或者.net2008等
最后:就是软件优化了,比如:如何用存储过程,在软件中哪一块吞吐量比较大,那么用什么样的缓存,是界面缓存,还是动态生成静态界面等,还有在软件开发中如何不使用递归等这种几何级的算法(就是树怎么减少)等

呵呵,基本上这就是在软件还没有做之前要交给客户的一份文档(需求规格说明书)最后一部分要写的东西了

不知道这些对你有帮助没有?
凤凰涅檠 2010-03-15
  • 打赏
  • 举报
回复
首先不应该考虑硬件方便的,从开发的角度上说;从设计模式上说;从提高性能上说。。。

然后开始考虑硬件方便的提升。。。


客户难道比我们更清楚?他们不懂,可以忽悠,可以加钱,问题是你做不做得出来这种并发数,做出来了测试一下不就知道了么
骄傲青蛙 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 skytear 的回复:]

问题是:
在做一个解决方案,设计一个技术方案的时候,啥都还没有,不可能做压力测试。
比如:用户说,你给我设计一个能同时相应2000个并发的系统,你的方案是?
[/Quote]

我遇到的问题和楼主一样, 客户给你一份需要, 上面写着如果并发数2000, 那你项目没做之前很难测试,做好之后测试再改代码? 还不如投入多几台服务器, 但这样成本就上去了, 忧虑中。。。
xupeihuagudulei 2010-03-15
  • 打赏
  • 举报
回复
VS
自带了web 测试。
leonbingo 2010-03-15
  • 打赏
  • 举报
回复
其实原理上来说,大家也就说到了,
1. 首先提出目标,系统需要支持多大的并发量,这个时候,首先要对系统进行设计,架构,不同的架构可以适应不同的需求,当然成本也就会不一样,比如,你要是做一个视频网站,那你就不得不进行多个节点服务器的分布,那么成本自然也要上去,另外,追求高并发量,你还需要做负载均衡,数据库集群等等优化设计,每一项都是要投入的。
2. 有了既定目标和设计以后,按照既定的设计来进行开发,并对开发好的系统进行压力测试,这个目的就是为了找出现有系统中的瓶颈,并且给予修正调优,压力测试的目的是为了找出系统的性能瓶颈,然后再为了解决瓶颈来制定解决方案,比如与预期要求的并发值有差距,那么你可以采取增加分布式节点服务器,或者提高节点服务器硬件配置等等策略。

基本上就是这两个步骤,这个东西说细了很博大精深,所以,小篇幅说起来是比较笼统。
加载更多回复(8)

62,054

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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