查看單個文章
舊 2003-08-23, 09:41 PM   #1
sanyen
榮譽勳章

勳章總數
UID -
在線等級:
文章: n/a
精華:
預設 加快關機速度的問題(WinXP)

快不一定就是好,加快關機速度的問題(WinXP)


文/車成斌




天主要探討登錄檔中的 WaitToKillServiceTimeout、 WaitToKillAppTimeout 以及 HungAppTimeout 設定,今天所講的範圍,適用於 Windows XP、Windows 2000 以及 Windows NT 這些以 NT 技術為發展基礎的作業系統上。

問題:

我看了某一本雜誌上說,把Windows XP 登錄檔裡面的 Wait To Kill Service Timeout數值設越小,關機速度越快,請問這是真的?為什麼呢?會不會有什麼危險?我可以把他設成 0 嗎?

回答:

WaitToKillServiceTimeout數值設的越小,關機速度越快,這樣的說法沒有不對,然而,雜誌上只只說了一半,另一半卻沒說。

現在市面上有許多的電腦書籍,可能都是為了求速成跟銷量吧,或是受於版面的限制,有些牽涉系統設定的技巧,都沒有講解得很詳細,只告訴你要這樣改,但是沒有告訴你為什麼要這樣改,可能連帶的影響有哪些..等等細節,讀者也只好依樣畫葫蘆,學起來是似懂非懂。

如果可以對每一項修改都能仔細說明的話,我相信讀者都有能力去判斷要不要這樣改,而不是不究理、囫圇吞棗的套用。

不過,要是真的講這麼詳細的話,市面上那些小本的密技也就不用出了,寫不下,一定會變成厚厚的一本,再加上許多人也只想立刻套用,講求速成,不想去多了解其中的「為什麼」,在這種習慣影響下,隨處都充斥著似是而非的觀念。

WaitToKillServiceTimeout 位在: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ 單位是微秒(micro seconds,1000 microseconds = 1 second)

Windows XP 的預設值是20000,就是20秒的意思,WaitToKillServiceTimeout 是 用來等待終止Service的時間,就是說:我在關機的時候,如果有某個 Service 超過20秒鐘你還不自動停止的話,我作業系統就強迫把你停掉,不等你了。

WaitToKillServiceTimeout其實也只是「最大寬限」而已,好比說我雖設20秒,假如我所有 Service 都自動在5 秒內終止,作業系統並不會還在那裡傻傻等下去,如果所有 Service 登自動停了,作業系統會繼續他的關機步驟,並不會等到時間到才進行下一步。

那我可不可以把等待的時間縮短或延長?

很難說,因為每個電腦的環境都不同,不能統一規定,這就像看病一樣,甲跟乙都是感冒,但是可能拿的藥會不一樣,因為醫生會針對他們的體質來開藥方,在電腦上也是類似的道理。

把時間設短,在甲的電腦上可能沒事,一切正常,乙依樣套用,且果他的電腦卻死翹翹了,為什麼?可能乙電腦上所跑的 Service 本來就需要長一點的時間結束,甲電腦上根本沒有安裝這些 Service,所以再短的時間也沒有影響,不明究理縮短時間的結果,就是出現一堆莫名其妙的狀況。

WaitToKillServiceTimeout不建議任意更動或設得太短,為什麼呢?

前面解釋過,WaitToKillServiceTimeout就是在給Service一段緩衝時間,讓這些執行中的 Service 有足夠時間將 Cache 中的資料在系統結束前寫回去,如果沒有保留足夠的緩衝時間,資料就會遺失,接著會發生什麼事情,誰也沒有辦法預料的。

尤其是作為伺服器用途的機器在修改 WaitToKillServiceTimeou 數值的時候更須小心,像 DHCP、DNS、WINS、Exchange、SQL servers ..等等這些 Service 所需要停止的時間,絕對比一般長許多,任意強迫終止的話,只會造成資料的流失,不可能獲得任何的好處。

與 WaitToKillServiceTimeout 相似的還有:WaitToKillAppTimeout 以及 HungAppTimeout,不過後兩者的影響就不會像 WaitToKillServiceTimeout 那麼嚴重了。

WaitToKillAppTimeout、以及 HungAppTimeout 都是位在登錄中的: HKEY_CURRENT_USER\ControlPanel\Desktop

以下分別解釋用途:

WaitToKillAppTimeout

是指等待目前執行中程式的逾時的時間。你下達關機指令後,作業系統會送出關機指令給目前執行中的應用程式,要求結束作業,這時候,如果其中有當掉的應用程式,作業系統當然就收不到來自這個程式的回應,作業系統就把這個程式列為沒有回應。

WaitToKillAppTimeout 就是告訴作業系統我該等你這個程式多久,超過這個時間要是是你這個程式再不給我回應的話,我就關機不管你了。

同時作業系統也會進行倒數計時,顯示還有多久將關閉這個沒有回應的程式。(預設值是20000 microseconds,就是 20 秒)

HungAppTimeout

就是在關機前,還要待等這些已經沒有回應的程式多久,算是最後通牒,預設值是5000 microseconds,就是 5 秒鐘。

既然我們了解到這些只是去設定去等已經沒有回應的那個程式的時間,那麼設短一點也無所謂了。

其實影響關機速度因素非常多,今天所講的「等待」的時間,幾乎是無關輕重。影響關機速度的原因很難一一列舉,從不良的驅動程式、有瑕疵的硬體、硬體間的彼此衝突、記憶體不足、甚至病毒,都會影響關機時間,絕對不是像某些書上所說,改這幾個登錄就可以解決,這等於是給讀者不切實際的期望,而不是對症下藥。
 
送花文章: 0, 收花文章: 0 篇, 收花: 0 次