我有以下配置。
四核
Windows 服务器 2008
IIS 7.5
4GB 内存 32 位
我已在此服务器上托管了 MVC 1 应用程序。但运行此应用程序时,只使用了 1 个 CPU 核心。
IIS 7.5 或 Windows Server 中是否有任何设置,以便使用/利用所有可用核心。
答案1
IIS 默认已使用所有核心。您可能会看到单个请求使用单个线程,因此使用单个核心。这是设计使然。
如果您向服务器发出第二个请求,您应该会看到它到达了新核心。如果有多个用户,您应该会看到各个核心之间的平均分布。
如果您需要对单个页面发出单个请求并使用所有核心,那么您需要专门为此进行设计。这将需要启动多个线程来处理单个请求。这对于 IIS 类型的负载来说并不常见,尽管它通常假设有数十、数百或数千个用户,而不是单个用户获得 100% 的服务器资源。
答案2
您可能想要为进程设置处理器亲和性(通过任务管理器):w3wp.exe。
您是在问如何才能在代码运行时利用多个核心?
答案3
您如何测试呢?
严重地。
如果您只有一个会话/用户,则访问在一个会话 cookie 下是串行的(asp.net 序列化所有处理)。
要真正看到您只使用一个核心,您需要获得超过 25% 的 CPU 使用率。根据您程序员的水平以及页面的琐碎程度,这可能需要 2 个用户同时使用,甚至可能是 2000 个用户……因为页面通常应该处理得很快。
所以,
你是如何测试的?是什么让你得出这个结论?