为什么IIS或Apache在满负载下不使用所有CPU容量?

时间:2014-12-25 12:42:46

标签: multithreading performance apache iis cpu

我写了两个返回常量值的简单服务。运行100'000个并发客户端线程,在分开的实验中在同一台机器上完成它们后,我发现没有一个CPU核心被利用超过10%。即使在更改客户端代码以在不定式循环中生成客户端线程之后,服务器核心利用率也不会更改。 这种行为是因为某些CPU指令是通过每个请求执行的吗? 如果是,他们是什么样的结构?

1 个答案:

答案 0 :(得分:2)

某些任务受I / O限制,而不是受CPU限制。

表示您创建的任何负载,RAM和磁盘以及网络活动将在CPU出现之前很长时间。

在某些情况下,在达到一定比例的CPU负载后,它不会再增加,因为负载的性质只使用本质上有限的函数子集。

根据我的经验,如果Apache使用100%的CPU,那么PHP脚本错误或PHP进程错误。