asp.net - IIS Web 服务争用
问题描述
我只是在优化我的 ASP.NET 网站的 WebService 性能。从用户的角度来看,服务感觉足够快,但 Stackify Retrace 向我展示了大多数 WebService-Call 在执行之前会进入队列大约 500 毫秒。
该站点仅在专用的 8 核 + HT 机器上提供大约 20-30 WCF 请求/秒。CPU 和内存正常:根本没有理由将这些请求排队。
我注意到当我开始更广泛地使用 WebSockets 时,排队变得更糟。我将大量 WCF 流量转移到 WebSockets,但是 WCF 调用的平均执行时间增加了(因为排队)
我用这些设置玩了很多:
- maxWorkerThreads
- minWorkerThreads
- 最大线程数
- minFreeThreads
- minLocalRequestFreeThreads
- 最大连接
- 执行超时
没运气。到目前为止,我了解到这些主要与 .NET 2 相关,并且无论如何在 .NET 4 中都有智能默认值。这就解释了为什么我所有的干预都没有任何效果。
问题:是否有任何相关的性能计数器可以帮助我找出为什么这么多请求排队?WebSockets/WebServices 是否使用了一些共享资源?
解决方案
推荐阅读
- amazon-web-services - RPI 的 AWS 实例类型
- python - 在 Python 中使用元组绘制有向图
- reactjs - 尝试从 Firestore 获取和更新集合时发现“文档集合中未定义”
- objective-c - UICollectionview 更改项目排序 Objective-C
- kubernetes - Nginx 反向代理背后的 Botpress
- javascript - 如何将我的 JavaScript 库代码与 webpack 打包成 jQuery 一样可扩展?
- c++ - 使用openthread而不使用线程协议的CoAP应用程序开发
- google-apps-script - Google APP 脚本将值转换为 TRUE 以设置 MultipleChoice 答案键
- mysql - 如何找到客户在特定日期范围内的最大点击次数?
- sql - 关于使用存储在记录中的数据库名称的跨数据库子查询