【发布时间】:2013-04-10 23:48:47
【问题描述】:
我有一个应用程序,其中客户端使用 websockets 连接到 IIS。 IIS 然后为 IPC 创建一个本地代理以连接到可执行文件。
所以 IIS 是一种中间人。
随着越来越多的连接进入,整个架构变得越来越慢。
所以某处存在瓶颈。
有趣的是 CPU 没有超过 25% 的使用率。我没有对 CPU utils 施加任何限制。
问题不在于作为函数的代码过去需要 100 毫秒,而现在需要 1000 毫秒。并且这些功能不受网络限制。 简单的图像转换。 我还会检查我是否阻塞了锁或其他任何东西。
如果加入系统的用户越多,就会发生越多的此类图像转换,并且使用的 CPU 越多。 但同样,cpu 利用率并没有改变,它停留在 25% 左右
由于即使是最简单的函数的执行速度也会变慢,我猜应用程序池可以使用多少 CPU 是有限制的。我再次检查了 AppPool 设置,没有限制。
有什么建议可以解决这个问题吗?
【问题讨论】:
-
让我想想,四核 cpu 所以 25% 是一个核的 100%
-
@Fredou,可能是,但如果工作线程不分布在内核之间,那就太奇怪了。
-
你已经在网卡、磁盘和内存上抛出 perf mon 了吗?这些是遇到此类 IIS 性能问题时要检查的其他关键组件。
标签: c# iis scalability cpu application-pool