C# IIS不能扩展,但cpu也不能最大化,为什么它会变慢

C# IIS不能扩展,但cpu也不能最大化,为什么它会变慢,c#,iis,scalability,cpu,application-pool,C#,Iis,Scalability,Cpu,Application Pool,我有一个应用程序,客户端通过WebSocket连接到IIS。 IIS然后为IPC创建一个本地代理以连接到可执行文件 所以IIS有点像中间人 当更多的连接进来时,整个体系结构变得越慢 所以在某个地方有一个瓶颈 有趣的是,CPU的使用率并没有超过25%。我没有对CPU UTIL设置任何限制 问题不在于代码是一个函数,比如说100毫秒,现在是1000毫秒。这些函数不受网络限制。 简单的图像转换。 我还检查了一下我是否在锁上或其他什么东西上阻塞 一件事是,加入系统的用户越多,发生的图像转换越多,使用的c

我有一个应用程序,客户端通过WebSocket连接到IIS。 IIS然后为IPC创建一个本地代理以连接到可执行文件

所以IIS有点像中间人

当更多的连接进来时,整个体系结构变得越慢

所以在某个地方有一个瓶颈

有趣的是,CPU的使用率并没有超过25%。我没有对CPU UTIL设置任何限制

问题不在于代码是一个函数,比如说100毫秒,现在是1000毫秒。这些函数不受网络限制。 简单的图像转换。 我还检查了一下我是否在锁上或其他什么东西上阻塞

一件事是,加入系统的用户越多,发生的图像转换越多,使用的cpu也越多。 但是cpu利用率没有改变,停留在25%左右

由于即使是最简单的函数的执行速度也在减慢,我猜应用程序池中的CPU使用量是有限制的。我再次检查了AppPool设置,没有限制


关于如何进行此操作的任何建议?

听起来像是通过代码或系统设置进行的CPU关联设置

您可以为每个应用程序池设置处理器关联性(从而限制为1个处理器),这将有效地限制在该池中运行的应用程序使用一个处理器。这将限制w3wp进程只使用一个处理器,因此如果您有四核CPU,它将以25%的速度运行。在此处,您可以通过IIS设置在此处找到有关更改此设置的详细信息:

您也可以选中任务管理器,右键单击该进程,然后单击“设置Afinity…”,然后查看是否将IIS限制为一个核心


希望这对你有帮助

通过代码或系统设置听起来像是CPU亲缘关系设置

您可以为每个应用程序池设置处理器关联性(从而限制为1个处理器),这将有效地限制在该池中运行的应用程序使用一个处理器。这将限制w3wp进程只使用一个处理器,因此如果您有四核CPU,它将以25%的速度运行。在此处,您可以通过IIS设置在此处找到有关更改此设置的详细信息:

您也可以选中任务管理器,右键单击该进程,然后单击“设置Afinity…”,然后查看是否将IIS限制为一个核心


希望这对你有帮助

您可以检查应用程序池进程的进程关联性。这可能就是你坚持25%的原因


除了处理器相关性之外,如果您的请求长时间运行,那么您可能会遇到IIS允许的每个CPU并发请求数的默认限制(特别是在集成模式下….12)。四核CPU上的25%表示亲和性是你的问题,但如果不是,你也可以检查一下。下面是一个

您可以检查应用程序池进程的进程关联性。这可能就是你坚持25%的原因


除了处理器相关性之外,如果您的请求长时间运行,那么您可能会遇到IIS允许的每个CPU并发请求数的默认限制(特别是在集成模式下….12)。四核CPU上的25%表示亲和性是你的问题,但如果不是,你也可以检查一下。这是一个

让我想想,四核cpu,因此25%是一个cpu的100%core@Fredou,可能是,但如果工作线程没有分布在多个核心上,那就很奇怪了。您在nic、磁盘和内存上抛出perf-mon了吗?当遇到类似这样的IIS性能问题时,这些是需要检查的其他关键组件。让我想想,四核cpu 25%是100%core@Fredou,可能是,但如果工作线程没有分布在多个核心上,那就很奇怪了。您在nic、磁盘和内存上抛出perf-mon了吗?这些是在遇到类似这样的IIS性能问题时要检查的其他关键组件。在任务管理器上,当右键单击w3wp.exe并查看关联性时,我看到所有11个CPU都被选中。所以11个cpu是2047的dec和0X7FF十六进制。因此,我将AppPool affinity Enabled设置为true,将affinity mask设置为2047。这意味着使用所有的CPU。尽管如此,我还是没有通过20%到30%的考试,但应用程序的速度越来越慢。我还删除了所有其他应用程序池以确保安全。我在默认应用程序池上运行它。在任务管理器上,当右键单击w3wp.exe并查看关联时,我看到所有11个CPU都被选中。所以11个cpu是2047的dec和0X7FF十六进制。因此,我将AppPool affinity Enabled设置为true,将affinity mask设置为2047。这意味着使用所有的CPU。尽管如此,我还是没有通过20%到30%的考试,但应用程序的速度越来越慢。我还删除了所有其他应用程序池以确保安全。我在默认应用程序池上运行它。