我们有一台运行 IIS 8.5 的 Windows Server 2012 R2 Web 服务器,其中托管着许多 ASP.NET 应用程序,每个应用程序都在自己的应用程序池中。该服务器最初的规格是应对预期的负载,但从那时起,客户也坚持要安装 McAfee 防病毒软件。我们已将应用程序目录从按需扫描机制中排除。
我们发现,当应用程序首次启动时,CPU 负载特别高(过高)。占用 CPU 的两个进程交替为 Visual C# 命令行编译器 (csc.exe) 和 McAfee 按访问扫描服务 (mcshield.exe)。
我预计在重新启动 ASP.NET 应用程序的初始编译期间,csc.exe 占用的 CPU 会相当高,但我担心 McAfee 会干扰并使此过程花费更长时间并进一步损害 CPU。有人有过类似的经历吗?
如果是,我是否应该将其他特定目录排除在扫描范围之外?或者,建议不要在 Web 服务器上使用防病毒软件是否更为正确?
如果没有,那么我可以做些什么来防止应用程序启动期间 CPU 出现这样的负载?
答案1
根据您的描述,我建议排除应用程序使用的任何 DLL 的目录。这包括 GAC 和/或 Microsoft.NET\Framework|Framework64\ 文件夹。确保不扫描应用程序 DLL 或 csc.exe。然后检查性能是否得到改善。