RHCA學習筆記:RH442-Unit5 隊列原理

NIT 5 Queuing Theory  隊列原理
目標:
1.明白性能調優的關鍵術語
      2. 應用隊列技術解決性能問題
      3.明白性能調優的複雜性
 
5.1     Introduction to queuing theory  隊列原理簡介
A.      Little’s Law 給出了隊列原理的基礎
John Little於1961年用數學證實了這個原理。
B.      帶來的好處:
a.       能夠用工程學方法來進行性能管理。
b.       量化系統將來的性能
c.       說明監測工具的輸出內容之間關係
d.       驗證測量值和軟件儀表數據的正確性。
  
5.2     Little’s Law
A.      關鍵術語:
a.       Queue length: average number of requests waiting in the system
隊列長度:在系統中同時等待的平均請求數.
b.       Arrival rate: the rate at which requests enter a system
到達率:一次性有多少請求到達系統
c.       Wait time: average time to satisfy a request
等待時間:知足一個請求的平均時間
Also known as wall clock,latency,response time,or residence time
             硬件時鐘,延時,響應時間,駐留時間
  公式:       L = A W    隊列長度= 到達率* 等待時間
                          A=arrivals/observation period A= 到達率/ 觀測時間
 
5.3     Queue length  隊列長度
A.      緩存在內存中的請求數
a.       L 能夠是能夠進行讀寫調整的或者只讀的
b.       隊列能夠進行優先級排序
例:執行寫以前先執行讀(這就是爲何要優先級排序)
            算法必須防止餓死。
B.      注意事項:
a.       短的隊列長度能夠優化內存
b.       長的隊列長充能夠對重要請求進行有效的從新排序
 
5.4     Queue length vs wait time  隊列長度 VS  等待時間
A.      爲了使到達率處於穩定狀態
直接改變W來改變L
B.      例(假設到達率爲200 requests/s):
a.       初步方案:400 req= 200 req/s * 2s
b.       減小W 或L: 200 req = 200 req/s * 1s
c.       提高W 或L: 800 req = 200 req/s * 4s
C.      小結
a.       在可預期的等待時間內限制隊列長度
b.       限制等待時間來優化隊列長度
 
5.5     Wait time  等待時間
A.等待時間包括:
   Queue time(排隊時間:請求資源所花費的時間
Service time(服務時間):處理一個請求所花的時間
B. 策略:
    a. 減小排隊時間
    b. 減小服務時間
 
   W=Q+S
   L=A (Q+S)
 
5.6     A closer look at wait time
A.      服務時間包括:
a.       System time系統時間:內核運算所花的時間
b.       User time用戶時間:用戶用於真正工做所花的時間
s= system call
u= user code
r= real time
r-u-s= real data transfer time
B. 策略
   a. 減小系統時間(阻塞用戶模式操做)
       b. 只花費用戶模式所需的時間
 
W=Q + (Tsys+Tuser)
 
5.7     How much user time is needed? For 20 inputs? For 100 inputs?
(略)
 
5.8     Profiling time with time  時間分析
A.      使用腳原本算出時間
Export TIME=」\n%e %S %U」
/usr/bin/time tar czf /tmp/demo.tgz /etc/ 2>&1 | tail –l | awk ‘BEGIN {print 「W\tTsys\tTuser\tQ」} {print $1 」\t」 $2 「\t」 $3 「\t」 $1 - $2 - $3}’
a.       計算排隊時間:Q=W – (Tsys+Tuser)
b.       能夠分析出排隊時間Q的問題。
 
5.9     Completion rate  完成率
A.      關鍵術語:
Bandwidth:data+overhead 帶寬:數據+開銷
Throughput:data only (Mbps)吞吐量:數據
Overhead: cost of doing work (Mbps) 開銷:傳輸數據的開銷
B.      帶寬一般是固定的
減小開銷能夠提高吞吐量
 
B=X+O 帶寬=完成率+開銷
帶寬固定的狀況下,減小開銷能夠提升完成率。
 
5.10 Arrival rate vs completion rate  到達率 VS 完成率
     A. 關鍵術語:
        Arrival time(A)到達率:一次有多少個請求到達系統(packets/s)
        Completion rate(C)完成率:一次能夠完成多少個請求(packets/s)
        Observation period觀察時間:觀察資源所花時間(1s)
        穩定狀態:條件是當A=C時
B 目標:調整時用C替代A
a.       調整時到達率是系統外部因素,所以很難去調整。
b.       完成率是可調整的,但很出現到達率與完成率相等的狀況
c.       系統不多真正的處於穩定狀態。
d.       請求有可能在觀察時間內完成不了
C.      警告:
a.       若是過度調整系統可能會引發系統不穩定,或者機器崩潰。
 
 
 
5.11 Finding a valid observation period  找出有效的觀察時間。
A.      當觀察時間適當長時,A average= C average
a.       用觀察時間爲1秒收集數據
b.       比較相對little’s Law 的測量值
c.       測量值是否匹配計算值?
如是,觀察時間有效,且L=CW
如不是,用長點的間隔時間重複以上步驟。
B. 例:使用iostat 和dd 來肯定有效間隔時間。
    dd if=/dev/zero of =/tmp/bigfile bs=1M count=1024
 
5.12            redicting system-wide limits  預測系統性能極限
A.      木桶理論
X system =X resource / V resource
B.      小結
a.       飽和資源是瓶頸。
b.       減小訪問次數(V resource)能夠提升系統吞吐量
c.       提高資源吞吐量(X resource) 能夠提升系統吞吐量。
 
5.13        Predicting resource limits  預測資源極限
A.      利用率法則
Utilization = (service time) * (arrival rate) 
利用率=服務時間 * 到達率
B.      在穩定狀態(C=A)下資源飽和(U=1)
1=SC   è  C max =1/S
 
C.      資源飽和狀況下:
a.       減小S能夠提高C,所以A提升了
b.       增長到達數量會加大隊列長度,因此等待時間上升了
c.       減小到達率來減小隊列長度,因此等待時間降低了
 
5.14            Summary of strategies  策略彙總
A.      調整L
a.       限制隊列長度
b.       對讀請求進行排序,以更多的去響應讀請求
B.      調整A或C
a.       經過更多的資源(SMP,RAID)減小訪問次數。
b.       延時資源訪問直到思考時間到。
c.       提升資源吞吐量(更有效的協議,較少的開銷)
C.      調整W
a.       減小請求過時時間
b.       使用資源來減小服務時間(memory cache , disk)
     D. 一次只能調整上面的一項。
相關文章
相關標籤/搜索