效能效益

已完成

假設有一則新聞報導發佈您組織最近的其中一則產品公告。 此新聞報導帶來的額外宣傳,為網站帶來大量流量。 您的網站是否可以處理此流量增加? 您的網站是否可以承受額外的負載,而不會變慢或回應遲鈍?

在本單元中,我們將探討確保未解決應用程式效能的一些基本準則。 特別是,構成效能效率要素的調整和最佳化原則。

什麼是效能效率?

效能效率是將應用程式可用的資源與收到的需求相符。 效能效率包括擴縮資源、識別及最佳化潛在瓶頸,以及將應用程式程式碼最佳化以達到尖峰效能。

我們來看看一些可用來增強應用程式效能與可擴縮性的模式與實務。

擴大和擴增

您可以朝兩個方向擴縮計算資源:

  • 「擴大」是指將更多資源新增到單一執行個體。 也稱為「垂直擴充」。

    An illustration that shows scaling up by adding resources to a virtual machine.

  • 「擴增」是指增加更多執行個體。 也稱為「水平擴充」。

    An illustration that shows scaling out by adding instances to increase performance.

擴大是關於增加更多資源 (例如 CPU 或記憶體) 供單一執行個體使用。 這個執行個體可以是虛擬機器或 PaaS 服務。

在執行個體中增加更多容量的動作,會增加應用程式可用的資源,但有所限制。 虛擬機器受限於其執行所在主機的容量,而主機本身有實體限制。 當您擴大執行個體時,您最終可能就會遇到這些限制。 其會讓您無法再新增更多資源給執行個體使用。

擴增是關於新增額外的執行個體供服務使用。 其可以是虛擬機器或 PaaS 服務。 我們會藉由增加執行個體總數來提高容量,而不是讓單一執行個體擁有更多容量來提升處理能力。

相應放大的優點是如果您有更多機器要新增到架構,您可以想見永遠相應放大。 相應放大需要某種類型的負載分配。 例如,將要求分散到可用伺服器的負載平衡器,或是用來識別要傳送要求之作用中伺服器的服務探索機制。

在這兩種類型的擴縮中,可以減少資源,進而實現成本最佳化。

自動調整是以動態方式配置資源以符合效能需求的程序。 隨著工作量的成長,應用程式可能需要更多資源來保有所需的效能層級及滿足服務等級協定 (SLA)。 當需要降低而不再需要新增資源時,可以將其解除配置以將成本降至最低。

自動調整會充分利用雲端裝載環境的彈性,以降低管理額外負荷。 其可減少操作員持續監視系統效能的需求,並做出有關新增或移除資源的決策。

將網路效能最佳化

當您針對效能進行最佳化時,會檢視網路和儲存體效能,以確保其層級在可接受的限制範圍內。 這些效能層級可能會影響應用程式的回應時間。 為結構選取合適的網路功能與儲存體技術,有助於確保您為消費者提供最佳體驗。

新增服務之間的傳訊層也對效能與可擴縮性有益。 傳訊層可建立緩衝區,以便在接收的應用程式來不及處理時,讓要求可以繼續傳入,而不會發生錯誤。 應用程式在處理要求時,會以要求的接收順序進行回應。

將儲存體效能最佳化

在許多大型解決方案中,資料分成個別的分割區,可以個別管理和存取。 您必須仔細選擇資料分割策略,才能最大化利益,同時將不良影響降至最低。 資料分割有助於改善可擴縮性、減少爭用,以及最佳化效能。

在您的架構中使用快取,有助於改善效能。 快取是一種機制,可儲存經常使用的資料或資產 (網頁、影像) 以便更快速地擷取。 您可以在應用程式的不同層次使用快取。 您可以在應用程式伺服器與資料庫之間使用快取,以減少資料擷取次數。

您也可以透過將靜態內容放置在更接近使用者的地方,以在使用者與 Web 伺服器之間使用快取。 這種類型的快取可減少將網頁傳回給使用者所需的時間。 其次還有一個效果,就是卸載來自資料庫或 Web 伺服器的要求,以提升其他要求的效能。

識別應用程式中的效能瓶頸

雲端中執行的分散式應用程式與服務為包括多個移動組件的複雜軟體片段。 在生產環境中,能夠追蹤使用者如何使用系統的方式非常重要。 追蹤資源使用率,以及一般來說,監視系統健康情況和效能也很重要。 您可以使用此資訊作為診斷輔助方式,以偵測並更正問題。 您也可以使用此資訊來協助找出潛在的問題並加以預防。

效能最佳化將包括了解應用程式本身的執行方式。 相依系統中的錯誤、效能不佳的程式碼與瓶頸,全都可透過應用程式效能管理工具發現。 通常,對使用者、開發人員與系統管理員而言,這些問題可能尚未發現或遮蔽,但可能對應用程式的整體效能造成負面影響。

查看應用程式的所有層次,並找出及矯正效能瓶頸。 這些瓶頸可能是應用程式中的記憶體處理不佳,或甚至是將索引新增到資料庫的程序。 該程序可以是反覆程序,因為您可能解除一個瓶頸,然後再發現您未察覺的另一個瓶頸。

透過效能監視的完整方法,您將可以判斷結構可受益於哪些類型的模式與做法。

檢定您的知識

1.

以下何者是擴大 (垂直調整規模) 的範例?

2.

以下何者是擴增 (水平調整規模) 的範例?