Scalability 總是與我的最後一個話題 performance 纏繞在一起,但事實上,它們是完全不同的兩個問題。在Performance 一節裡,我已談及了 caching, 它是scalability 最大的改進之一,因此,我(作者)在想,我還得找些其它一些內容在這節裡討論。
首先,此系統建成,本身有著一定的特性,以改進多處理器和串環境中的性能。例如,session state 能夠通過單獨的處理器來維持,在一個單獨的機器上,甚至在數據庫中允許交叉的服務器sessions。通過這樣,即使在開發過程中你沒有想過會快速增加的流量,也可以相對容易的增加更多的網絡服務器。
這兒同樣有一些被稱作“web花園”的東西,我也不太完全了解。但是,它們可以幫助多處理器的機器,幫助它們做比單處理器更多的工作。我認為它是個非常新奇的想法,但是,也有人認為他們不會使用這項功能。
因此,你已經擁有了建立一個完善的web農場的工具,但是如何使它們不停的運作呢?當然,ASP。NET runtime會監控並管理進程。當有漏洞或者是死鎖時,runtime會自動關閉,但是只需等待,它會恢復。在老版本關閉之前,一個新的版本會在老版本的位置啟動以覆蓋老版本。Runtime然後會引導新的指令至新的工作進程並排斥老指令然後關閉。因為有了替換,最後用戶是不會發現任何改動的。
在介紹這麼多ASP.Net 的高性能後,下面我將介紹幾個例子。