伺服器的效能指標

2021-06-06 04:19:53 字數 1337 閱讀 8504

伺服器的效能指標

作為乙個網路伺服器程式,效能永遠是第一位的指標。效能可以這樣定義:在給定的硬體條件和時間裡,能夠處理的任務量。能夠最大限度地利用硬體效能的伺服器設計才是良好的設計。

設計良好的伺服器還應該考慮平均服務,對於每乙個客戶端,伺服器應該給予每個客戶端平均的服務,不能讓某乙個客戶端長時間得不到服務而發生「飢餓」的狀況。

可伸縮性,也就是說,隨著硬體能力的提高,伺服器的效能能夠隨之呈線性增長。

實現高效能的途徑

乙個實際的伺服器的計算是很複雜的,往往是混合了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操作完成而被掛起,作業系統將會排程 另外乙個就緒的執行緒投入執行,從而形成併發執行。經典的網路伺服器邏輯大多採用多執行緒/多程序方式,在乙個客戶端發起到伺服器的連線時,伺服器將會建立一 個執行緒,讓這個新的執行緒來處理後續事務。這種以乙個專門的執行緒/程序來代表乙個客戶端物件的程式設計方法非常直觀,易於理解。

對於乙個需要應付同時有大量客戶端併發請求的網路伺服器來說,執行緒池是唯一的解決方案。執行緒池不光能夠避免頻繁地建立執行緒和銷毀執行緒,而且能夠用數目很少的執行緒就可以處理大量客戶端併發請求。

值得注意的是,對於乙個壓力不大的網路伺服器程式設計,我們並不推薦以上任何技巧。在簡單的設計就能夠完成任務的情況下,把事情弄得很複雜是很不明智,很愚蠢的行為。

伺服器效能指標

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

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

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

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

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