WaitToKillServiceTimeout 数值设的越小,关机速度越快,这样的说法没有不对,然而,这只说了一半,而另一半却没说。
WaitToKillServiceTimeout 位置在:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control] 单位是 micro second
Windows XP 的预设值是20000,WaitToKillServiceTimeout 是用来等待终止Service的时间,就是说:在关机的时候,如果
有某个 Service 超过指定时间还不自动停止的话,作业系统就强迫停掉他,不等了。
WaitToKillServiceTimeout 其实也只是一种「最大宽限」而已,好比说我虽设20000 microsoconds,假如我所有 Service
都自动在期限内终止,作业系统并不会还在那里傻傻等下去,如果所有 Service 登自动停了,作业系统会继续他的关机步
骤,并不会等到时间到才进行下一步。
那我可不可以把等待的时间缩短或延长?
因为每个电脑的环境都不同,不能统一规定,这就像看病一样,甲跟乙都是感冒,但是可能拿的会不一样,因为医生会针
对他们的体质来开方,在电脑上也是类似的道理。
把时间设短,在甲的电脑上可能没事,一切正常,乙依样套用,但是他的电脑却死翘翘了,为什麽?
可能乙电脑上所跑的 Service 本来就需要长一点的时间结束,甲电脑上根本没有安装这些 Service,所以再短的时间也没有
影响,不明究理缩短时间的结果,就是出现一堆莫名其妙的状况。
WaitToKillServiceTimeout不建议任意更动或设得太短,为什麽呢?前面解释过,WaitToKillServiceTimeout就是在给Service
一段缓冲时间,让这些执行中的 Service 有足够时间将 Cache 中的资料在系统结束前写回去,如果没有保留足够的缓冲时间,
资料就会遗失,接着会发生什麽事情,谁也没有办法预料的。
尤其是作为伺服器用途的机器在修改 WaitToKillServiceTimeou 数值的时候更须小心,像 DHCP、DNS、WIN*、**change、
SQL servers ..等等这些 Service 所需要停止的时间,绝对比一般长许多,任意强迫终止的话,只会造成资料的流失,不可
能获得任何的好处。
-------------------------------------------------------------
与 WaitToKillServiceTimeout 相似的还有:WaitToKillAppTimeout 以及 HungAppTimeout,不过后两者的影响就不会像
WaitToKillServiceTimeout 那么严重了。
WaitToKillAppTimeout、以及 HungAppTimeout 都是位于:[HKEY_CURRENT_USER\ControlPanel\Desktop]
以下分别解释用途:
WaitToKillAppTimeout 是指等待目前执行中程式的逾时的时间。你下达关机指令后,作业系统会送出关机指令给目前执行中
的应用程式,要求结束作业,这时候,如果其中有当掉的应用程式,作业系统当然就收不到来自这个程式的回应,作业系统
就把这个程式列为没有回应。WaitToKillAppTimeout 就是告诉作业系统我该等你这个程式多久,超过这个时间要是是你这个
程式再不给我回应的话,我就关机不管你了。同时作业系统也会进行倒数计时,显示还有多久将关闭这个没有回应的程式。
(预设值是20000,设为1000,即1秒)
HungAppTimeout 就是在关机前,还要待等这些已经没有回应的程式多久,算是最后通牒,(预设值是5000 ,设为1000,即1秒)。
既然我们了解到这些只是去设定去等已经没有回应的那个程式的时间,那么设短一点也无所谓了。
其实影响关机速度因素非常多,今天所讲的「等待」的时间,几乎是无关轻重。
因为影响关机速度的原因很难一一列举,
从不良的驱动程式、有瑕疵的硬体、硬体间的彼此冲突、记忆体不足、甚至病毒,
都会影响关机时间,绝对不是改这几个registry key就可以解决。
这等於是不切实际的期望,而不是对症下