伺服器效能指標

2021-06-17 20:43:29 字數 2599 閱讀 1827

伺服器效能指標

伺服器的效能指標

作為乙個網路伺服器程式,效能永遠是第一位的指標。效能

可以這樣定義:

在給定的硬體條件和時間裡,

能夠處理的任務量。

能夠最大限度

地利用硬體效能的伺服器設計才是良好的設計。

設計良好的伺服器還應該考慮

平均服務,

對於每乙個客戶端,

伺服器應該給予每個客戶端平均的服務,

不能讓某乙個客戶端長時間得不到服務而發生「飢餓」的狀況。

可伸縮性,

也就是說,

隨著硬體能力的提高,伺服器的效能能夠隨之呈線性增長。

實現高效能的途徑

乙個實際的伺服器的計算是很複雜的,往往是混合了

io計算和

cpu計算。io計

算指計算任務中以

io為主的計算模型,比如檔案伺服器、郵件伺服器等,混合

了大量的網路

io和檔案io;

cpu計算指計算任務中沒有或很少有

io,比如加密

/解密,編碼

/解碼,數學計算等等。

在cpu

計算中,單執行緒和多執行緒模型效果

是相當的。

《win32

多執行緒的效能》

中說「在乙個單處理器的計算機中,

基於cpu 

的任務的併發執行速度不可能比序列執行速度快,但是我們可以看到,在

windows nt 

下執行緒建立和切換的額外開銷非常小;對於非常短的計算,併發執

行僅僅比序列執行慢

10%,

而隨著計算長度的增加,

這兩個時間就非常接近了。

」 可見,對於純粹的

cpu計算來說,如果只有乙個

cpu,多執行緒模型是不合適的。

考慮乙個執行密集的

cpu計算的服務,

如果有幾十個這樣的執行緒併發執行,

過於頻繁地任務切換導致了不必要的效能損失。

在程式設計實現上,單執行緒模型計算模

型對於伺服器程式設計是很不方便的。

因此,對於

cpu計算採用執行緒池工作模型

是比較恰當的。

queueuserworkitem

函式非常適合於將乙個

cpu計算放入執行緒池。

執行緒池實現將會努力減少這種不必要的執行緒切換,而且控制併發執行緒的數目為

cpu的數目。

我們真正需要關心的是

io計算,一般的網路伺服器程式往往伴隨

著大量的

io計算。提高效能的途徑在於要避免等待

io 的結束,造成

cpu空閒,

要盡量利用硬體能力,讓乙個或多個

io裝置與

cpu併發執行。前面介紹的非同步io,

apc,

io完成埠都可以達到這個目的。

對於網路伺服器來說,如果客戶

端併發請求數目比較少的話,

用簡單的多執行緒模型就可以應付了。

如果乙個執行緒

因為等待

io操作完成而被掛起,作業系統將會排程另外乙個就緒的執行緒投入運

行,從而形成併發執行。經典的網路伺服器邏輯大多採用多執行緒

/多程序方式,

在乙個客戶端發起到伺服器的連線時,

伺服器將會建立乙個執行緒,

讓這個新的線

程來處理後續事務。這種以乙個專門的執行緒

/程序來代表乙個客戶端物件的程式設計

方法非常直觀,易於理解。

對於大型網路伺服器程式來說,這種方式存在著局

限性。首先,

建立執行緒

/程序和銷毀執行緒

/程序的代價非常高昂,

尤其是在伺服器

採用tcp「短連線」方式或

udp方式通訊的情況下,

例如,http

協議中,

客戶端發起乙個連線後,

傳送乙個請求,

伺服器回應了這個請求後,

連線也就被關閉了。

如果採用經典方式設計

伺服器,

那麼過於頻繁地建立執行緒

/銷毀執行緒對效能

造成的影響是很惡劣的。

其次,即使乙個協議中採取

tcp「長連線」,客戶端

連上伺服器後就一直保持此連線,

經典的設計方式也是有弊病的。

如果客戶端並

發請求量很高,

同一時刻有很多客戶端等待伺服器響應的情況下,

將會有過多的

執行緒併發執行,

頻繁的執行緒切換將用掉一部分計算能力。

實際上,

如果併發執行緒

因為執行緒切換的同時也將引起記憶體調頁。最終導致伺服器效能急劇下降,

對於乙個需要應付同時有大量客戶端併發請求的網路伺服器來說,

執行緒池是唯一的解

決方案。

執行緒池不光能夠避免頻繁地建立執行緒和銷毀執行緒,

而且能夠用數目很少

的執行緒就可以處理大量客戶端併發請求。

值得注意的是,對於乙個壓力不大的

網路伺服器程式設計,

我們並不推薦以上任何技巧。

在簡單的設計就能夠完成任

務的情況下,把事情弄得很複雜是很不明智,很愚蠢的行為。

伺服器的效能指標

伺服器的效能指標 作為乙個網路伺服器程式,效能永遠是第一位的指標。效能可以這樣定義 在給定的硬體條件和時間裡,能夠處理的任務量。能夠最大限度地利用硬體效能的伺服器設計才是良好的設計。設計良好的伺服器還應該考慮平均服務,對於每乙個客戶端,伺服器應該給予每個客戶端平均的服務,不能讓某乙個客戶端長時間得不...

伺服器效能測試中有哪些常用的效能指標?

常用的效能指標 吞吐量 固定時間間隔內的處理完畢事務個數。通常是1秒內處理完畢的請求個數,單位 事務 秒 tps 平均吞吐量 一段時間內吞吐量的平均值。無法體現吞吐量的瞬間變化。峰值吞吐量 一段時間內吞吐量的最大值。是用來評估系統容量的重要指標之一。最低吞吐量 一段時間內吞吐量的最小值。如果最小值接...

伺服器效能都包括哪些指標?

apache效能監控支援以下指標 apache吞吐率 apache併發連線數 apache併發連線數詳細統計,包括讀取請求 持久連線 傳送響應內容 關閉連線 等待連線 lighttpd效能監控支援以下指標 lighttpd吞吐率 lighttpd併發連線數 lighttpd併發連線數詳細統計,包括建...