如何客观衡量应用程序在服务器上的负载

所有,

我甚至不知道从哪里开始寻找资源来回答我的问题,我意识到对这种事情的猜测是非常主观的。

我需要帮助确定我应该购买什么级别的服务器来承载MS Windows Server 2008平台上MSSQL服务器后端的MS Silverlight应用程序。 这是一个交互式的程序,所以我不能简单地生成一个URL列表来testing,并运行1000个并发用户。

有哪些工具可以帮助我确定应用程序将在不同级别的并发用户的服务器上装入什么样的负载?

您是否都会build议将Web服务器与SQL Server分离,以更好地区分堆栈不同部分上的生成负载?

即使Silverlight是客户端的主机,它仍然会调用回你的服务器来获取数据,并可能做一些处理。

而不是思考Silverlight如何与典型的Web应用程序不同,你应该考虑它是如何相似的(这是有效的,因为很多Web应用程序现在使用AJAX,在某些情况下,比旧的PostBak Web表单更多的请求到服务器)。

无论如何,从build模应用程序开始,查看它为服务器生成的stream量types。 使用类似Fiddler的东西来查看典型用例中发生的stream量types。 这会给你一个什么types的Web服务被调用的概念,以及如何被调用。

从这里开始,您可以开始构build模拟对这些Web服务的调用的testing脚本。

你的第二个问题很难回答,因为这取决于很多因素。 你将不得不做一些testing,看看什么效果最好。

我实际上并没有silverlight的经验,但是对于这个问题,总的来说还有一个OK的select。 我们大多数人仍倾向于依靠试错法和预感。

LoadRunner是一个祖父,但如果你不得不要求你的预算。

Keynote有一个名为KITE的工具,可免费下载。 您启动它,然后在其中启动一个IE浏览器,做任何你认为用户会做的事情,然后将logging的会话保存为脚本。 然后,您可以将该脚本上传到他们的服务器networking,并支付给他们迅速运行。 他们也会努力让你付出代价来帮助你写脚本。 他们是这样一个“企业”的供应商,所以需要预算才能真正获得解决scheme。

戈麦斯有类似的服务,我也不知道细节。 其多一点的公用事业利率为主,因为你通过大宗交易购买。 他们可以更便宜,但仍然是“千人”的心态。

Selenium是一个免费/开源的工具,可以使用类似于KITE,但你必须绑定群集/客户端/报告的东西。 其中一名开发人员也运行浏览器手机,这将基本上在您的负载服务器上运行您的selenium脚本为您便宜。

对于即使是复杂的ajax应用程序,这些都可能是有益的,但是我真的不知道silverlight是否能够工作。

就像我刚才所说的,我们大多数人还是这样。 尽可能早地设置非常小心的监控和指标收集,以及用户采用该系统的趋势。 开始开发粗略的比率度量标准,即每个CPU或每GB内存可以有多less用户同时处于活动状态,或与多less个SQL请求/秒等相关。这有助于您计划用户容量,向您显示您的最大生产力,并突然显示出一个指标因为您所做的更改而出现在图表上。