可伸縮性/可擴展性

可伸縮性/可擴展性(Scalable/scalability)

可伸縮性(可擴展性)是一種對軟件系統計算處理能力的設計指標,高可伸縮性代表一種彈性,在系統擴展成長過程中,軟件能夠保證旺盛的生命力,通過很少的改動甚至只是硬件設備的添置,就能實現整個系統處理能力的線性增長,實現高吞吐量和低延遲高性能。

可伸縮性和純粹性能調優有本質區別, 可伸縮性是高性能、低成本和可維護性等諸多因素的綜合考量和平衡,可伸縮性講究平滑線性的性能提升,更側重於系統的水平伸縮,通過廉價的服務器實現分佈式計算;而普通性能優化只是單臺機器的性能指標優化。他們共同點都是根據應用系統特點在吞吐量和延遲之間進行一個側重選擇,當然水平伸縮分區後會帶來CAP定理約束。

軟件的可擴展性設計非常重要,但又比較難以掌握,業界試圖通過雲計算或高併發語言等方式節省開發者精力,但是,無論採取什麼技術,如果應用系統內部是鐵板一塊,例如嚴重依賴數據庫,系統達到一定訪問規模,負載都集中到一兩臺數據庫服務器上,這時進行分區擴展伸縮就比較困難,正如Hibernate框架創建人Gavin King所說:關係數據庫是最不可擴展的。

性能和擴展性

什麼是性能問題? 如果你的系統對於一個用戶訪問還很慢,那就是性能問題;
什麼是擴展性問題? 如果你的系統對一個用戶來說是快的,但是在用戶不斷增長的高訪問量下就慢了。
延遲和吞吐量
   延遲和吞吐量是衡量可擴展性的一對指標,我們希望獲得低延遲和高吞吐量的系統架構。所謂低延遲,也就是用戶能感受到的系統響應時間,比如一個網頁在幾秒內打開,越短表示延遲越低,而吞吐量表示同時有多少用戶能夠享受到這種低延遲,如果併發用戶量很大時,用戶感覺網頁的打開速度很慢,這意味着系統架構的吞吐量有待提高。

擴展性的目標是用可接受的延遲獲得最大的吞吐量。可靠性(可用性)目標:用可接受的延遲獲得數據更新的一致性。

轉自

https://www.jdon.com/scalable.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章