2

我们有一个复杂的应用程序,它使用简短的 ASP servlet 提供 AJAX JSON 流(使用 ADO 来获取数据)。任何给定的会话都可以同时从 10-20 个这些请求中启动。在构建负载时,我们比预期更早地遇到了严重的性能问题。(服务器是双 XEON、RAID 5、4gb 等)。在 perfmon 中进行调查,我们注意到“请求执行”数字永远停留在 1。永远不会更高。研究表明,20-50 的数字并不少见。Requests Queued 将徘徊在 10-20 左右,等待时间也会攀升。

我们已经将 ASPProcessorThreadMax 从默认的 25 设置为 40,但没有任何效果。它似乎一次只能处理一个请求,不用说,这是行不通的。我找不到任何描述这个特定问题的东西。非常感谢任何帮助。

4

1 回答 1

1

ASP 会话对象被限制为单线程单元 (STA)。因此,对同一会话的 ASP 脚本的请求只能按顺序处理。

即使跨多个会话,您也可能只看到 1 个执行 ASP 脚本的另一个原因是已为 ASP 启用调试。这会导致 ASP 处理忽略 ASPProcessorThreadMax 并假装它被设置为 1。

要消除此问题,请确保未启用调试并关闭“启用会话状态”。如果您在代码中使用 Session 对象,则需要找到替代方法,例如 DB 支持的状态。

但是,您期望在现场制作中有多少活动的并发会话?也许整体用户体验不会真正受到每个会话的请求序列化的影响。

于 2012-06-13T13:07:28.327 回答