性能測試:
使用st對服務器程序分別在FreeBSD和windows(Cygwin)下的運行情況進行測試(st相應的運行在FreeBSD和Cygwin下)。
機器硬件條件:Intel (R) Celeron CPU 2.40GHz;256DDR,Maxtor 80G。
1. FreeBSD 4.7環境:
/*****************************************************/
www# ./st -n 100 -c 20 192.168.1.7/123
This is ServerTest for my pngserver, Version 1.0
Copyright (C) 2004-2005 XiongBin Xiong All rights reserved
[email protected]
testing...
Server Hostname: 192.168.1.7
Server Port: 80
Document Path: /123
Total Requests: 100
Concurrency Level: 20
Time taken for tests: 0.709739 seconds
Complete requests: 100
Failed requests: 0
Total transferred: 35000 Bytes
Requests per second: 140.90 [#/sec] (mean)
Time per request: 141.948 [ms] (mean)
Time per request: 7.097 [ms] (mean, across all concurrent requests)
Transfer rate: 48.16 [Kbytes/sec] received
/*************************************************************/
2. Windows XP (Cygwin)環境:
/*****************************************************/
testing...This is ServerTest for my pngserver, Version 1.0
Copyright (C) 2004-2005 XiongBin Xiong All rights reserved
[email protected]
testing...
Server Hostname: 192.168.1.7
Server Port: 80
Document Path: /qwe
Total Requests: 50
Concurrency Level: 5
Time taken for tests: 39.487579 seconds
Complete requests: 50
Failed requests: 0
Total transferred: 7900 Bytes
Requests per second: 1.27 [#/sec] (mean)
Time per request: 3948.758 [ms] (mean)
Time per request: 789.752 [ms] (mean, across all concurrent requests)
Transfer rate: 0.20 [Kbytes/sec] received
/****************************************************/
當併發數爲5時,程序正常。
/*****************************************************/
testing...This is ServerTest for my pngserver, Version 1.0
Copyright (C) 2004-2005 XiongBin Xiong All rights reserved
[email protected]
connect error
connect error
connect error
connect error
connect error
connect error
connect error
Server Hostname: 192.168.1.7
Server Port: 80
Document Path: /qwe
Total Requests: 50
Concurrency Level: 10
Time taken for tests: 29.208741 seconds
Complete requests: 43
Failed requests: 7
Total transferred: 6794 Bytes
Requests per second: 1.47 [#/sec] (mean)
Time per request: 6792.730 [ms] (mean)
Time per request: 679.273 [ms] (mean, across all concurrent requests)
Transfer rate: 0.23 [Kbytes/sec] received
/****************************************************/
當併發數爲10時,程序出現連接失敗情況。
/*****************************************************/
testing...This is ServerTest for my pngserver, Version 1.0
Copyright (C) 2004-2005 XiongBin Xiong All rights reserved
[email protected]
connect error
connect error
......
connect error
Server Hostname: 192.168.1.7
Server Port: 80
Document Path: /qwe
Total Requests: 100
Concurrency Level: 20
Time taken for tests: 30.19982 seconds
Complete requests: 54
Failed requests: 46
Total transferred: 12802 Bytes
Requests per second: 1.80 [#/sec] (mean)
Time per request: 11110.512 [ms] (mean)
Time per request: 555.926 [ms] (mean, across all concurrent requests)
Transfer rate: 0.42 [Kbytes/sec] received
/****************************************************/
當併發數爲20時,程序出現大量連接失敗情況。
簡單分析:
程序運行於Cygwin環境時性能大大低於FreeBSD環境,特別是服務器程序和測試程序同時運行於Cygwin環境時;
st程序中使用的各種函數如:strcpy,strcat,strchr,strstr等,都可能對性能造成影響,即,可能是在測試ab而不是服務器的性能。