結(jié)束語(yǔ)
CPU節(jié)流:下一代
IIS7具有CPU節(jié)流功能,可以防止無(wú)規(guī)則的網(wǎng)站占據(jù)太多的CPU. 可惜,IIS7過(guò)于孤注一擲,這使得它并沒(méi)有想象中的那么有用。
首先,當(dāng)你要給網(wǎng)站進(jìn)行節(jié)流設(shè)置,唯一的有效的節(jié)流方式就是在一段持續(xù)的時(shí)間內(nèi),結(jié)束網(wǎng)站的全部進(jìn)程 。你可以設(shè)置CPU的閾值和時(shí)間長(zhǎng)度,但這意味著這個(gè)網(wǎng)站在這段時(shí)間內(nèi)完全癱瘓。沒(méi)有任何一種方法能讓一個(gè)站點(diǎn)在任何時(shí)間配置IIS并且只用了處理器X(或所有處理器)90%的CPU。

IIS 7的CPU節(jié)流特點(diǎn)是孤注一擲的:你要么停止進(jìn)程要么不采取任何行動(dòng)
第二,IIS 7的CPU節(jié)流是和給定的應(yīng)用池綁定的。 如果你每一個(gè)網(wǎng)站都有一個(gè)單獨(dú)的池,這個(gè)不太糟糕,如果以這樣的方式放置CPU核心也可以。(即使是單核,對(duì)低CPU的網(wǎng)站來(lái)說(shuō)也行。) 但是如果你有多個(gè)網(wǎng)站共享相同的應(yīng)用程序池,一旦其中的一個(gè)網(wǎng)站的CPU節(jié)流出現(xiàn)問(wèn)題,那么全部的網(wǎng)站都會(huì)掉線。
為了解決以上所有的問(wèn)題,IIS 8在CPU節(jié)流工作工程中增加了兩個(gè)新的動(dòng)作:
Throttle和Throttle under load,Throttle控制對(duì)于一個(gè)給定工作進(jìn)程的CPU,和任何該進(jìn)程產(chǎn)生的子進(jìn)程。Throttle允許網(wǎng)站使用盡可能多的CPU,但是如果這個(gè)進(jìn)程和其他進(jìn)程競(jìng)爭(zhēng)CPU的話,Throttle將會(huì)對(duì)此進(jìn)程進(jìn)行節(jié)流。
這樣可以實(shí)行節(jié)流并且不會(huì)關(guān)閉所有的進(jìn)程,并且在多用戶的環(huán)境中增加了靈活性。你可以并行多個(gè)網(wǎng)站,無(wú)論有沒(méi)有為它們的工作進(jìn)程設(shè)定明確的處理器關(guān)系,不會(huì)使它們互相影響。
IIS 8的另一個(gè)新功能是應(yīng)用初始化模塊,它允許一個(gè)站點(diǎn)接受頁(yè)面請(qǐng)求和回應(yīng)友好的訊息,同時(shí)網(wǎng)站代碼仍被加速。這個(gè)功能可以阻止在重新編輯收藏夾的時(shí)候用戶點(diǎn)爆瀏覽器上的刷新按鈕。
SSL改進(jìn)
我一直都不喜歡IIS處理SSL的方式。“笨拙的”“麻煩的”是我用來(lái)形容在IIS中添加和管理SSL證書(shū)這一整個(gè)過(guò)程中的兩個(gè)最不刻薄的形容詞。幸好,IIS 8 的SSL處理中,具備了三個(gè)主要的新改進(jìn)。