隊列技術
<b>1. </b><b>概述</b><b></b>
<b></b>
數值化所有可調的參數,讓任何調整都有資料支援,即隊列理論(排隊論)。由 1910 年的時候丹麥科學家 A.K.Erlang 提出來的。
l 隊列長度是可以調整的,調整隊列這樣可以優化讀寫的性能。
l 短隊列的好處:在記憶體中一個少的隊列的長度,會對我們的記憶體有利。
l 長隊列的好處:可以對多個隊列進行合并讀寫,這樣可以更少的 IO 操作,有更高的性能。
<b>2. </b><b>隊列理論的公式</b><b></b>
<b>L = A * W</b>
l L:隊列長度(queue length)。
#number of request指在系統中等待處理的請求的平均數,機關個。
l A: 平均到達率。
#請求到達系統的比例,A 假如衡量标準為s,則每s有多少個請求到達。
l W: 平均等待時間。
#處理完成一個請求所需要的時間;(該名額也被了解為延遲、響應時間或者駐留時間)。
通常到達率A是無法改變和調整的。(如:A是每天的web通路人數。)我們主要是要要調節 "L" 和 "W" 來控制到達率的請求的處理,最大的可調性是 W 等待(處理)時間。
<b>3. </b><b>W </b><b>總的等待</b><b>(</b><b>處理</b><b>)</b><b>時間的公式</b><b></b>
<b>W = Q + S </b><b>或</b><b> W = Q + (Tsys + Tuser)</b>
l W: 總的等待(處理)時間
l Q: 排隊等着處理的時間
l S: 服務用的時間,S=Tsys+Tuser
n Tsys: 系統時間(與核心有關的),内容處理這個響應排程花的時間,比上中斷,上下檔案切換。
n Tuser: 使用者時間(是與應用程式有關的),應用程式處理應用花的時間,真實程式使用的時間
執行個體:time檢視指令處理時間
[root@station8 ~]# time dd if=/dev/zero of=test bs=1M count=500
500+0 records in
500+0 records out
524288000 bytes (524 MB) copied, 0.909336 seconds, 577 MB/s
real 0m0.911s #W時間
user 0m0.001s #Tuser時間
sys 0m0.910s #Tsys時間
<b>4. </b><b>完成率(</b><b>completion rate</b><b>)</b><b></b>
<b>B=X + O</b>
l B:帶寬Bandwidth, 資料Data+開銷 Overhead
l X: 速率Throughput,吞吐量,通常是要減去開銷的。就是指單純的資料(eg:Mbps)
l O:開銷Overhead,工作中所消耗的部分(eg:Mbps)
<b>#</b><b>通常情況下帶寬B是固定的,減小開銷O可以提升速率X</b>
<b>A & C</b>
l A:到達率,同一時間的請求數(eg:packets/s)
l C:完成率,同一時間完成的請求數(eg:packets/s)
<b>#</b><b>最理想的狀态時:到達率</b><b>A=C</b><b>完成率。</b><b> </b><b>通常情況下,到達率是外部影響的,通常是比較難調的。是以一般調整完成率。</b><b></b>
本文轉自netsword 51CTO部落格,原文連結:http://blog.51cto.com/netsword/563959