Linux伺服器程式效能測試的一些思考

2021-06-16 04:38:23 字數 1533 閱讀 2320

工作中對專案壓力測試的一些心得,先自我作乙個小結吧!

(一)巨集觀與微觀相結合

(1)巨集觀層面

即系統的一些關鍵效能指標,如:各程序所佔cpu的百分比、記憶體消耗、網路包量、磁碟io等等,詳細指標列舉如下:名稱

描述 參考值

cpu 

useage

cpu 的使用時間百分比。

平均值小於70% p

rocess virtual 

memery

size

程序使用的記憶體空間總量,包括物理記憶體和swap記憶體

程序長時間執行後該值不能大幅度的改變,否則是記憶體洩露 d

isk rate

磁碟傳輸速率

一般少於2m/s, 日誌級別太低時硬碟io會是瓶頸。

byte

s trans rate

網路傳送速率

少於200mbps

byte

s receive rate

網路接收速率

少於200mbps p

ages swap in

每秒鐘讀入到物理記憶體中的頁數

長期大於0表示物理記憶體不足 p

ages swap out

每秒鐘寫入頁面檔案頁數

參考上面

context switches rate

每秒鐘在程序或執行緒之間的切換率。

少於5000*cpu個數

interrupt rate

每秒內的裝置中斷數。

該指標代表了本地向cpu引起的本地中斷,例如io埠引起中斷,系統時鐘引起中斷。

乙個巨大的中斷值,同時伴隨著緩慢的系統效能表現,指示存在硬體問題。 

測試工具:nmon

(2)微觀層面

這裡是指具體到server程式的邏輯功能模組,包括函式消耗cpu週期、函式呼叫次數等資源占用情況,以及系統核心哪一部分最忙等。

測試工具:oprofile、gprof

(二)黑盒與白盒相結合

(1)黑盒測試

我們目前的壓力測試程式,其實是歸於黑盒測試範疇的,它模擬玩家的一些行為,應用具體專案的實際協議與被測遊戲server通訊,通過同時產生大規模機械人,來模擬與實際運營中相似的場景。這裡編寫的測試用例,其功能就是要盡可能真實地模擬client的功能,並能方便的配置化和部署client行為;

(2)白盒測試

我理解的白盒測試包括兩部分,一是單元測試,它能有效地解決bug回歸測試的問題,二是**覆蓋率檢查,它能有效檢查到每個函式分支的執**況。前者可借助業界成熟的自動化測試框架,如:cppunit、gtest;後者也有許多第三方工具,比較方便的有gnu自帶的gcov,只要在編譯程式時,加入-fprofile-arcs -ftest-coverage編譯選項即可。

如果要用一句話來概括兩者的話,那就是:

白盒測試能極大的保障程式邏輯功能層面的正確性(正常與異常流程均能檢測到),而黑盒測試則能有效保障程式執行的穩定性。

Linux伺服器iops效能測試 iozone

wget 2.工具安裝 執行命令 rpm ivh iozone 3 487.i386.rpm 異常 libc.so.6 is needed by iozone 3 487.i386 yum install glibc.i686 3.自動模式測試iops 執行命令 opt iozone bin ioz...

Linux 高效能伺服器程式框架

伺服器解構主要分為如下三個主要模組 1 i o處理單元。接收客戶端傳送的資料都屬於i o處理單元。2 邏輯單元。接收到資料之後進行的一些處理都屬於邏輯單元。3 儲存單元。如下圖所示 伺服器程式設計框架 1 c s模型 c就是客戶端,s就是伺服器。所以這個模型也稱客戶端 伺服器模型。c s模型如下圖所...

sysbench測試伺服器效能

sysbench目前已經有0.5的版本,不過最普遍使用的依舊是0.4.12,所以接下來我們會以0.4.12這個版本作為測試 step2 執行測試指令碼 請不要直接貼上此指令碼到你機器上執行,除非你知道它在做什麼 root dbserver data cat sysbench all.sh bin b...