如何configuration“按访问反病毒”更快的启动?

我正在试图优化我们700个Windows XP工作站的启动过程,我们经常抱怨现场工作站的启动和login时间。

在这两部分来看 ,第一部分使用BootVis来监视和检查启动过程; 第二部分使用Process Monitor来监视login过程。 使用BootVis的“引导完成”方式作为衡量标准,我使用了一台已经使用了18个月的VMWare工作站虚拟机作为通用testing机器(因此是相当典型的现场机器)。 我使用快照在每次testing之前将虚拟机返回到初始状态。

从日志和报告,BootVis创build最明显的延迟是来自Sophos Anti-Virus的访问扫描器,然后在一段距离之前由mrxsmb。 我调整了机器的策略(确保我强制Sophos每次更新两次),并提出了以下数字:

  • 扫描所有文件,阅读 :260秒
  • 扫描所有文件,写入 :160秒
  • 扫描可执行文件,读取和打开时 :111秒
  • 扫描可执行文件,开启时间 :99秒
  • 扫描可执行文件,写入 :95秒
  • 按访问扫描禁用 :102秒

以上倾向表明,扫描所有文件,读取是迄今为止最昂贵的操作(可能完全没有必要)。 我不能完全理解为什么禁用读写扫描实际上会减慢引导顺序,然而却小得多。 最后的三个结果几乎是一样的,这意味着我必须使用其他因素来影响我的决定,即select扫描可执行文件,读取或写入。


更新:

我在同一台虚拟机器上做了一些更多的testing(在不同的时间,所以不能直接和上面的结果进行比较:

  • 未安装Sophos :67.4秒(5次testing的平均值)
  • 扫描可执行文件,开启时间 :84.5秒(平均5次testing)
  • 扫描可执行文件,写入时间 :85秒(平均5次testing)

平均值导致“On Read”和“On Write”的值进一步收敛,有趣的是,使用Sophos扫描可执行文件仅比未安装的Sophos增加了21%的性能开销。


那么在configuration按访问扫描来改善启动时间时,我应该做些什么?

我们目前正在研究SOPHOS速度问题,并且提出了以下build议,这些build议在我们的winxp sp3环境中做出了相当大的改变:

  1. 在“访问”部分中排除这些文件:

    • C:\ WINDOWS \ SYSTEM32 \ authz.dll
    • C:\ WINDOWS \ SYSTEM32 \ DRIVERS \ SRV.SYS
    • C:\ WINDOWS \ SYSTEM32 \ es.dll
    • C:\ WINDOWS \ SYSTEM32 \ netman.dll
    • C:\ WINDOWS \ SYSTEM32 \ oakley.dll
    • C:\ WINDOWS \ SYSTEM32 \ pstorsvc.dll
    • C:\ WINDOWS \ SYSTEM32 \ rasadhlp.dll
    • C:\ WINDOWS \ SYSTEM32 \ regsvc.dll
    • c:\ windows \ system32 \ winipsec.dll它们是启动文件,只要你有完整的系统扫描运行在某个点上,你会没事的。
  2. 第二件事是在启动时closures检查更新。 这是有点冒险的,因为这是新病毒攻击的关键点,但是你可以定期30分钟检查更新,这意味着你永远不会超过半个小时。 要检查更新,请执行以下操作:

替代文字http://www.sophos.com/images/common/misc/27646.gif

实施这些更改后,从开机到桌面的速度都有了明显的提高。

我希望这有帮助。

基普

我没有使用Sophos,所以我不确定是否有类似的东西,但是在Symantec中有一个registry更改,可以禁用启动时的完整系统扫描。 如果没有这个,赛门铁克会在系统第一次启动时扫描所有的东西,在系统启动之后的第一个小时,可能会让系统变得非常慢。 在Sophos中可能有类似的设置。

当然,禁用这个可能会降低安全性。 有一个原因,他们有一个启动扫描。

我们在旧计算机上遇到与McAfee相同的问题。 这些机器无法访问互联网,所以我写了一个启动脚本,以便在几分钟内延迟服务的启动。

' Place script in C:\Documents and Settings\All Users\Start Menu\Programs\Startup ' The McShield and McTaskManager services must be set to Manual Wscript.sleep 12000 'Delay start for 2 minutes Set objWMIService = GetObject ("winmgmts:{impersonationLevel=impersonate, (Debug)}\\.\root\cimv2") StartService "McShield" StartService "McTaskManager" Function StartService (strService) Dim intStatus, colServices, objService Set colServices = objWMIService.ExecQuery ("Select * from Win32_Service Where Name = " & chr(39) & strService & chr(39)) For Each objService in colServices intStatus = objService.StartService Next End Function 

这可能不适合您的情况,但解决scheme适合我们。