每个CPU或每个内存的典型平均ASP.NET会话数是多少?

Abe*_*bel 10 asp.net performance session

(编辑:重写问题,使其更清晰,意义没有改变)

您可以创建应用程序并测量其用法.但我想知道,如果你决定的前期关于ASP.NET应用程序,多并发用户(会话)如何融入一台机器一般.

我们假设以下默认的简化设置:Inproc会话,ASP.NET 3.5,NHibernate + L2缓存,购物网站(会话中的篮子属性).

虽然我可以确定会话不会超过20kB,但我的经验告诉我,即使是布局合理的应用程序,也会产生巨大的开销.我正在寻找你可以在便利贴上做出的简单计算.

对于赏金:您会为每个X同时用户建议您的管理层CPU /内存,忽略带宽要求.即答案可能是:在具有1GB内存,Win2k8的2GHz Xeon上,您可以安全地同时提供500个会话,但除此之外,它需要仔细规划或更多硬件重新设置

Fre*_*dou 8

你知道代码的"质量"吗?

糟糕的代码在硬件上可能会花费巨大而良好的代码却无需任何成

根据评论更新

几年前,我不得不维护一个应用程序很糟糕,它使用500兆内存(有时1.5克),并花了几分钟来显示东西,我不得不重写整个事情,然后,它只是采取必要的内存量(接近10-15倍)并且显示内容很快,我在这里谈论毫秒.

内存中循环和严重缓存数据的数量是错误的......看起来非常难过.只是告诉你,我在内存中有3个版本的整个怪胎数据库(所以4个真实的数据库),代码必须一个接一个地更新所有版本.应用程序中的其他所有内容都基于内存中的版本.

无论如何,到最后.我删除了25000行代码.

代码的质量IS重要.

第二次更新

发现这个,可能会很好

第三次更新

在我正在开发的应用程序中,asp.net 3.5使用linq来进行sql通话(当然)与sql server 2005.很多读取数据库并没有那么多写入.

在我自己的开发机器上,这是旧的p4普雷斯科特与3演出的ram.加载整页平均需要20ms到100ms,取决于哪个页面:-)

会话(内存使用率)非常低,肯定在20k以下

如果我离开这里,我的数学计算结果很差 ;

如果我有100个并发用户,则加载页面大约需要2秒,并且在会话期间将使用至少2兆的内存.

数学不好需要的?1个用户需要什么,只需1个用户乘以WhatYouThinkYouShouldBeAbleToHandle

我认为没有其他方法可以找到答案.因为再次,页面下的代码确实很重要.


Bee*_*eep 8

既然你正在寻找一个真实的#,我会为你提供一些.我们正在使用ASP.NET MVC创建一个安全的HR应用程序.和你一样,我们想要获得最大并发连接的良好感觉,我们将其定义为10秒内服务的最大页数(假设用户不会等待超过10秒的页面).

由于我们正在寻找一个上限,我们使用了一个非常简单的页面.SSL +一些会话变量.在双Xeon四核(总共8核),16GB内存和SQL Express作为后端,我们能够达到~1,000"并发"连接.无论是内存还是SQL Express都不是限制因素,它主要是我们测试的处理器和I/O. 请注意,我们没有使用缓存,但对于购物车我怀疑你也会.这个页面打了〜3次数据库,并发送了~150KB的数据(大多是png图像,未缓存).我们确认创建了1,000个会话,尽管每个会话都很小.

我们的POV是1000可能是不现实的.包括具有业务逻辑和真实用户数据的页面的测试显示最多约200个并发用户.但是,一些用户也将运行报告,这可能会使整个核心咀嚼长达30秒.在这种情况下,9个并发报告用户基本上可以使系统不适合其他人.这是另一个海报的要点......你可以随心所欲地获取其他性能#,但你的系统可能会根据它的行为完全不同.