全部,
我什至不确定从哪里开始寻找资源来回答我的问题,而且我意识到对这种事情的猜测是非常主观的。
我需要帮助确定我应该购买哪类服务器来在 Windows Server 2008 平台上托管带有 MSSQL 服务器后端的 MS Silverlight 应用程序。这是一个交互式程序,所以我不能简单地生成一个 URL 列表来进行测试,并让 1000 个同时用户运行它。
有哪些工具可以帮助我确定应用程序将在不同级别的并发用户下对服务器施加什么样的负载?
你们是否都建议将 SQL 服务器与 Web 服务器分开,以更好地区分堆栈不同部分上生成的负载?
即使 Silverlight 是客户端上的主机,它仍会调用回您的服务器以获取数据并可能进行一些处理。
与其考虑 Silverlight 与典型 Web 应用程序有何不同,不如考虑它的相似之处(这是有效的,因为现在许多 Web 应用程序使用 AJAX,在某些情况下,它向服务器发出的请求比旧的 postbak Web 表单更多)。
无论如何,首先对应用程序进行建模以查看它为服务器生成的流量类型。使用 Fiddler 之类的工具来查看在典型用例中发生的流量类型。这将使您了解正在调用什么类型的 Web 服务以及它们是如何被调用的。
从这里您可以开始构建模拟对这些 Web 服务的调用的测试脚本。
你的第二个问题很难回答,因为它取决于很多因素。你将不得不做一些测试,看看什么效果最好。
我实际上没有使用 silverlight 的经验,但对于这个问题,一般来说有很多好的选择。我们大多数人仍然倾向于依赖试错+预感。
LoadRunner 有点像祖父,但如果你不得不要求它超出你的预算。
Keynote 有一个名为 KITE 的工具,可以免费下载。您启动它,然后在其中启动一个 IE 浏览器,执行您认为用户会执行的任何操作,然后将记录的会话保存为脚本。然后,您可以将该脚本上传到他们的服务器网络,并付费让他们快速运行它。他们还会努力让你付钱给他们帮助你编写脚本。他们是“企业型”供应商,因此需要预算才能真正获得解决方案。
Gomez 也有类似的服务,我也不知道详情。它的实用率更高一点,因为您通过批量交易购买。它们可能更便宜,但又是“数千”的心态。
Selenium 是一个免费/开源工具,可以像 KITE 一样使用,但你必须安装集群/客户端/报告的东西。其中一位开发人员还运行 Browser Mob,它基本上会在他们的负载服务器上以便宜的价格运行您的 selenium 脚本。
这些对于即使是复杂的 ajax 应用程序都可能有好处,但老实说,我对 silverlight 的了解还不够,无法说它们是否可以工作。
就像我前面说的那样,我们中的大多数人仍然在努力。尽早设置非常仔细的监控和指标收集,并随着用户采用系统而趋势。开始为每个 cpu 或每 GB 内存可以同时激活多少用户或与每秒多少 sql 请求相关联等制定粗略的比率指标。这有助于您预测您的用户容量,向您展示您的顶级猪是什么,并在某个指标由于您所做的更改而突然出现在图表中时向您显示。