伺服器效能和延展性殺手(轉1)

來源:互聯網
上載者:User
伺服器|伸縮|效能 現在,伺服器效能問題是許多書寫傳統型應用程式的人所要面對的問題。元件物件模型(Component Object Model,COM)和Component ware的成功產生了一個意想不到的結果,這就是如果使用像ASP(IIS的一個擴充)這樣的應用程式伺服器,就不用編寫主機代碼了,其實以前的主機代碼都不是在真正的伺服器環境下編寫的。案頭環境和伺服器環境之間有許多重要的不同,這些不同會在效能上產生不可預測的影響。

傳統型應用程式伺服器

影響傳統型應用程式效能的因素是眾所周知的。長指令路徑意味著更慢的代碼,這是效能方面的一個主要缺陷。使用大量資源會使應用程式變得更加臃腫,這樣系統中的其他應用程式可用的資源就會更少。減慢啟動時間會激怒使用者。太多的回合設定會使機器的頁錯誤率增高,使它們變慢而且反映遲鈍。伺服器應用程式也常受到這些因素影響,另外還有一些其他因素介紹如下:

通常,伺服器應用程式同時處理的客戶沒有幾百也有幾十。對傳統型應用程式來說,如果能在1/10秒內對使用者做出反應就算是很快的了。假設一個操作需要整整100ms的話,那麼這個應用程式在一秒中只能進行10個操作。大多數伺服器應用程式需要比每秒鐘十次請求大得多的通量。高延遲時間網路(延遲時間=訊息的傳輸時間)加長了反應時間,這就需要伺服器的反應更快以滿足要求。

伺服器應用程式經常處理大量的資料設定。效率低下的,尤其是那些浪費已耗用時間的方法,是不能用於處理上百萬條資料的。

伺服器機器比案頭機器更強大。伺服器機器有更多的記憶體,更大的磁碟,更快的CPUs,並且通常有多個處理器。但是這些仍然不夠。案頭機器處理的是零星的突發性業務,大部分時間是閒置,而伺服器的負載是連續不斷的。伺服器機器很昂貴,必須運行得很好才行。

伺服器應用程式需要具有以月計算的正常已耗用時間。過了一段時間後,伺服器的效能必須不會由於資源流失或 cruft(一種需要周期性清除的資料結構和統計結果)的積聚而降低。

大多數伺服器應用程式都需要採用多線程結構。考慮一個一次只處理一個請求。而將大部分時間都化在I/O上的單線程伺服器,這樣的效能是很難讓人接受的。線程池可以利用其他閒置處理器刻度同時處理幾個請求。為了充分利用多處理器系統,伺服器應用程式必須是多線程的。不幸的是,多線程應用程式很難編寫,很難調試,而且很難運行得好,尤其是在多處理器系統中。但是一旦正確地得到它,其效能會遠遠超過同樣的單線程應用程式,從這一點來說,使用多線程應用程式還是值得的。

單線程應用程式相對簡單,很容易理解:程式中某一時刻只有一個事件發生。在多
線程應用程式中,並發行為導致複雜的相互作用,其影響很難預測。另外,這些相
互作用,不管是否是災難性的,都很難再生。傳統型應用程式很少有多於一個線程
的,即使有,這些線程也只是用於分立的後台業務,例如列印。


IIS的靈活性和效能

Internet Information Server(IIS)是一個應用程式伺服器。在很多方面,它像是一個虛擬作業系統,因為有許多ASP和ISAPI應用程式在處理間隔中運行。

IIS使用一個I/O線程池來處理所有到來的請求。對靜態檔案(.htm,.jpg等檔案)的請求會馬上得到滿足,而對動態內容的請求被指派到適當的ISAPI擴充動態串連庫。ASP擴充利用一個工人線程池運行ASP頁。因為ASP是基於COM的,所以所有組件都是在我們的處理過程中執行的。這是一個好壞摻半的事情。它對開發人員來說是好極了,因為它允許組件的簡單重用,使ASP非常靈活,因此使ASP和IIS非常成功。但是,這個靈活性導致了效能問題。因為許多組件是為案頭系統編寫的,並且許多專門為ASP建立的組件是由那些不是十分會寫高效能伺服器組件的人編寫的。

對ISAPI擴充和過濾器也是一樣。不同組件之間及同一組件的不同執行個體中都存在著嚴重的相互影響。

下面的所有說明都適用於IIS,其中的大多數也適用於其他伺服器應用程式。




相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。