前言:
1、jemalloc記憶體分配規則
jemalloc是一種通用的記憶體管理方法,著重於減少記憶體碎片和支援可伸縮的併發性,我們部門的redis版本中就引入了jemalloc,做redis容量評估前必須對jemalloc的記憶體分配規則有一定了解。
jemalloc基於申請記憶體的大小把記憶體分配分為三個等級:small,large,huge:
對於64位系統,一般chunk大小為4m,頁大小為4k,記憶體分配的具體規則如下:
2、bucket:bucket是乙個陣列,陣列的每個元素都是指向dictentry結構的指標。redis中bucket陣列的大小計算規則如下:大於dictentry個數的、最小的2^n;例如,如果有1000個dictentry,那麼bucket大小為1024;如果有1500個dictentry,則bucket大小為2048。
容量評估:
1、string:
總記憶體消耗 =(40 + jemalloc(length(key) +9) +jemalloc(length(value) +9)) * size + bucket個數 × 8
2、list:
總記憶體消耗= (jemalloc(length(value) +9) + 40 ) × value個數 +jemalloc(length(key) +9) + 104
3、hash
總記憶體消耗= (jemalloc(length(field) +9)+jemalloc(length(value) +9)+ 56)× field個數 + field_bucket個數× 8 +jemalloc(length(key) +9)+ 152
4、set
總記憶體消耗 = (jemalloc(length(field) +9)+ 71)× field個數 + field_bucket個數× 8 +jemalloc(length(key) +9)+ 152
5、zset
總記憶體消耗 = (jemalloc(length(value) +9)+94)×value個數 +value_bucket個數 ×8 +jemalloc(length(key) +9)+ 732
mysql 容量評估 資料庫「容量」評估法則之一
業務需求與指標的對應關係 資料總量假設1年內資料量大約500g資料量。每秒請求量每秒有2000次請求。響應時間查詢和操作請求要求ms級響應 讀寫比讀寫比是5 1。重要程度核心系統,p1級故障。冷熱資料一般請求熱點資料為最近15內的 記錄長度每條記錄長度大約為1kb。計算方式之一 還有計算方式之二,請...
前端機單機容量評估公式
1。計算單機極限qps。壓測 壓測最關心的兩個值qps,rt 響應時間 當rt達到無法容忍的上限,或者系統某些地方開始出現瓶頸 如記憶體不足,系統頻繁full gc,i o等待時間過長,cpu load超高 此時的qps便是乙個機器能承受的極限qps 2。計算系統峰值qps。計算公式如下 峰值qps...
如何評估容量和流量壓力
1.評估需要的執行緒數和對應的記憶體數 問 455511次每分鐘 3.69毫秒 求如果評估可能每台機器會有多少執行緒數。解析 一分鐘內乾了455511次活,每個活需要3.69毫秒 那麼如何計算需要多少個執行緒 人 幹活。解答 假設每個人都滿負荷工作。沒有其他開銷。一分鐘內總工作量是轉換為時間是 45...