我有一个负载非常高的网站,并将我的测试应用程序保存在隐藏的 iframe 下,以确保目标框架是我用例的不错选择。首先尝试 SignalR 测试应用程序,然后在同一服务器配置下 Pokein。目前我们正在使用 Flash 远程解决方案,但很快我们计划对其进行更改。
我花了一些时间让我的基于 SignalR 的测试应用程序在我的网站的高负载下处理并发客户端更新。它在这种情况下运行良好(一些客户端请求消息)..当大多数连接的客户端同时请求消息时,它严重失败(我需要从 iframe 调用中删除它)..我曾怀疑我的服务器配置是问题,但相同的场景在其他付费解决方案 Pokein 下工作没有任何问题。
有什么我忘记的技巧吗?
2012 年 2 月 10 日更新: 虽然我们决定在我们的解决方案中实现 PokeIn,但我在 Github 上尝试了最新的 SignalR 代码(可能对其他人有帮助).. 结果是一样的。
2012 年 3 月 13 日更新: 场景:(再一次)-尝试在给定的时间间隔内向数千个连接的客户端发送消息,比如说(1 秒)。测试并看到结果并不难。我觉得,我是唯一一个为这种非常常见的用法强调图书馆的人。
详细信息(如何重现 - 使用 Github 的 0.5 进行测试)- Server 2008 R2 32GB DDR3、i7-2600 3.4Ghz、2x256 GB Crucial M4 - ASP.NET 3.5
- 单页应用。每秒从服务器更新客户端的时间
该页面嵌入到由多个网站加载的隐藏 iframe 中,以便进行真实的负载测试。
问题
系统在某个时候锁定(大约 800 个用户)并且大多数客户端没有从服务器获取更新时间
系统锁定后,该单个应用程序页面将停止响应
我还尝试将间隔增加到 5 秒。这次系统响应更快(大约 950 个用户),但结果是一样的。我在 .NET 2 和 .NET 4 应用程序池上试过这个。
希望这些细节就足够了。重复这个测试对我来说很容易,一旦我找到空闲时间,我会用未来的版本重复测试。