Azure SQL的DTU和eDTU到底是个什么鬼
Azure SQL 使用了數據庫事務單位 (DTU) 和彈性數據庫事務單位 (eDTU)來作為一個計量單位。
但是DTU和eDTU是什么鬼啊?
官方文檔這樣解釋
DTU?是一個資源度量單位,表示保證可用于單一數據庫服務層內特定性能級別的單個?Azure SQL?數據庫的資源。?
DTU是一定比例的?CPU、內存和數據?I/O以及事務日志?I/O的混合度量值,該比例由?OLTP基準工作負荷決定(OLTP基準工作負荷代表真實的?OLTP工作負荷)。
這段話說起來非常的難于理解的,所謂的一定比例的CPU、內存和數據庫I/O這個就摸不著頭了。 然后這些資源的比例又是按照OLTP的基準工作負荷來決定。OLTP基準工作負荷這個又是一個新東西,參見:https://www.azure.cn/documentation/articles/sql-database-benchmark-overview/
?
其實DTU簡單理解就是衡量Azure提供的SQL服務計算能力的一個指標。這個指標越大,SQL的計算能力越強。如100個DTU比5個DTU就應該是強20倍。
可以從上表上對應于本地數據庫的性能采集的指標,可以估算出應該使用什么樣級別的AZURE SQL。 當然服務層選擇后仍然可以進行更改。
?
對于自己應用應該用多大規模的DTU,可以進行詳細的評估,可以使用下面工具
Azure SQL Database DTU Calculator
關于如何評估,且聽下回分解。
所以,DTU這個鬼來說就理解為Azure數據庫的性能評估單位 。
那么問題又來了什么是eDTU,DTU雖然不太好理解,但是從構架來說,不外乎就是為應用提供數據庫服務,也即是我們常用的模型,使用起來也簡單。我們稱之為單一數據庫。要理解eDTU我們先要講講什么是Azure 彈性數據庫。
但是在云的時代就有一個典型的問題存在:所有應用幾乎都會有峰值和低谷。而單一數據庫一旦分配,資源就已經提供,沒有高峰和低谷的區別。那么如何解決這樣的問題呢?
通常有兩個選項:
(1) 基于高峰使用情況過度設置資源,因此需要支付額外的費用;
(2) 為了節省成本而采用低配,但在高峰期間會出現性能下降而導致客戶滿意度降低。
彈性數據庫就是為了解決這樣的問題而誕生。彈性池通過確保數據庫在需要時獲得所需的性能資源來解決此問題。它們在可預測的預算內提供簡單的資源分配機制。
其實這樣理解,我們可以創建一個彈性的數據庫池,而多個數據庫使用這個池,充分利用池的資源。池很適合具有特定使用模式的大量數據庫。對于給定的數據庫,此模式的特征是低平均使用量與相對不頻繁的使用高峰??梢约尤氤氐臄祿煸蕉?#xff0c;就可以節省更多的成本。具體取決于應用程序使用模式,你可能會看到與使用兩個 S3 數據庫相同的成本節約。
下圖顯示了一個數據庫示例,該數據庫有大量的閑置時間,但也會定期出現活動高峰。這是適合池的使用模式:
在所示的五分鐘時間段內,DB1 高峰最高達到 90 個 DTU,但其整體平均使用量低于五個 DTU。在單一數據庫中,運行此工作負荷需要 S3 性能級別,但在低活動期間,大多數資源都處在未使用的狀態。
池可讓這些未使用的 DTU 跨多個數據庫共享,因此減少了所需的 DTU 數和總體成本。
?
以上一個示例為基礎,假設有其他數據庫具有與 DB1 類似的使用模式。在接下來的兩個圖形中,4 個數據庫和 20 個數據庫的使用量分層放在相同的圖形上,以說明隨時間推移,它們的使用率非重疊的性質:
在上圖中,黑線表示跨所有 20 個數據庫的聚合 DTU 使用量。其中表明聚合 DTU 使用量永遠不會超過 100 個DTU,并指出 20 個數據庫可以在此時間段內共享 100 個 eDTU。相比于將每個數據庫放在單一數據庫的 S3 性能級別,這會導致 DTU 減少 20 倍,價格降低 13倍。
?
由于以下原因,此示例很理想:
每一數據庫之間的高峰使用量和平均使用量有相當大的差異。
每個數據庫的高峰使用量在不同時間點發生。
eDTU 將在多個數據庫之間共享。
?
池的價格取決于池的 eDTU。盡管池的 eDTU 單位價格比單一數據庫的 DTU 單位價格多 1.5 倍,但池eDTU 可由多個數據庫共享,因而所需的 eDTU 總數更少。定價方面和 eDTU 共享的這些差異是池可以提供成本節省可能性的基礎。
?
所以eDTU一個池化DTU的概念,單一數據庫性能可以動態的進行調節,而池中的數據庫也可以進行添加刪除。
?
更多相關信息和詳細信息可以點擊“閱讀原文”查閱。
內容轉載自公眾號
微軟中國MSDN 了解更多總結
以上是生活随笔為你收集整理的Azure SQL的DTU和eDTU到底是个什么鬼的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .net core依赖注入的封装
- 下一篇: 深入理解Async/Await