我的公司发布了一款模拟软件,该软件定期执行长时间的 CPU(和 GPU,偶尔还有 I/O)密集型任务。我们的用户群是工程师,其中一些人就职于大公司,而另一些人仍然秉持着 90 年代较为陈旧的 IT 思维模式。
我们多次遇到过这样的情况:配置极高的客户端计算机(有些是价值 5 位数美元的商用计算机)运行模拟的速度比我们内部机器上的相同模拟速度慢 2 到 30 倍。客户端计算机在各个方面(CPU、GPU、RAM、磁盘)都优于我们的内部计算机。
在少数情况下,我们能够确定杀毒软件是罪魁祸首,但这通常更多是由于偶然情况,而不是我们所做的任何可靠的侦查工作。我们在杀毒方面没有太多经验,但从我们的观察来看,许多主动扫描的杀毒软件似乎并没有占用 CPU,甚至没有显示为任务管理器进程,但(大概)CPU 利用率被分配给了我们的进程,从而导致这些严重的性能下降。
在其他情况下(有时在快速访问 1k-100k 二进制文件时),它似乎会频繁导致 CPU 使用率降至 0%,因此系统实际上会长时间处于空闲状态(而在我们的内部机器上,CPU 会保持稳定的 100% 使用率,直到任务完成)
有时,当关闭防病毒软件时,性能会立即达到预期水平。不幸的是,很难要求这些公司的 IT 部门仅凭直觉就做到这一点(这可以理解)。在某些情况下,他们也不愿意真正为工程师提供超出最低限度的支持,因此这变成了一场不愉快的部门间争斗。
有没有一种方法可以可靠地检测出防病毒软件是否导致了性能问题,以便我们能够更好地确定是否值得争论?
根据客户端的不同,我们可能有或没有管理员权限,因此我欢迎针对这两种情况的解决方案或建议。