我们有一个RIA应用程序,可以在一个Intranet环境中同时使用300个客户端。 他们一起向IIS(asp.net)发出30次调用(实际上是60次,但通过两台IIS服务器调用负载均衡)。 有一半的调用正在获得一个资源(cachingconfiguration文件被使用,所以大部分时间caching命中),另一半是保存数据到一个sql服务器。
检索资源是通过一个aspx页面完成的。 通过WebORB,asp.net和Sql Server保存数据。 所以WebORB(amf解码,GZIP,…)需要一些处理。 我们也使用Spring.NET,一些容器对象有一个请求范围(不是很多)。
IIS服务器 – >虚拟机,4个CPU,2 GB RAM。 它们基于Windows 2008 x64 SP2企业版。
Sql Server 2008被使用。
显然,两个IIS serers的CPU一直在60-70%左右。
现在,我的问题是,60-70%的负载是可以接受的,我们怎么可能把这个降低到更低的百分比(也许只使用一个IIS服务器)? + 2 GB内存足够了吗?
资产可能高达20MB,但平均大约30kb。 (用30kb左右的资产达到60-70%的负载)。
用weborb保存的数据非常小(2kb),只是一个对象。
取决于CPU上的LOT。 我的意思是物理的。 有一点需要注意的是,VM内的CPU测量可能closures。 得到它检查外面 – 如何加载是服务器。 根据虚拟化的CPU你可能不会真的有很多的负载….并看到CPU完全加载。
永远不要忘记,GZIP是一个CPU猪。 如果你在一个内联网,你可能会更好地closures压缩和使用快速networking(1GB – 应该是标准的)。
除此之外,我很抱歉,没有更多的可以说。 我将附上一个分析器,并找出CPU负载的花费。 也许(如果你是幸运的)你有一些非常糟糕的代码,你可以优化。
对于一个IIS,每秒30个呼叫是多less? 地狱不,那没什么。
我们的内容pipe理网站在高峰负载期间已经超过300个呼叫/秒…再次没有什么。
但正如TomTom所言,有很多因素需要考虑。 主要的是应用程序。