1)环境
(1)服务端:
2*Intel Xeon CPU 2.8G/2G/2*1G网卡/Windows Server 2003
(2)客户端:
3*IBM X32
2)测试方法
(1)进程查看工具:Process Explorer v9.02
查看模块内存、CPU使用情况:
(2)并发测试客户端
(3)任务管理器
网络流量查看:
CPU使用情况:
3.测试结果
1)Baseline
| 并发数 |
服务器端 |
客户端 |
| CPU(%) |
内存(M) |
网络流量(%) |
平均响应时间(ms) |
最大响应时间(ms) |
平均
码流(kbps) |
失败数 |
| 700 |
20%~26% |
397M |
网卡1:15%~18% 网卡2:17%~18% |
73.60ms |
471ms |
458 |
0 |
2)优化测试结果
| 并发数 |
服务器端 |
客户端 |
| CPU(%) |
内存(M) |
网络流量(%) |
平均响应时间(ms) |
最大响应时间(ms) |
平均码流(kbps) |
失败数 |
| 700 |
20%~25% |
97.6M |
网卡1:33%~37% |
71.33ms |
440ms |
457 |
0 |
| 1500 |
39%~42% |
106M |
网卡1:43%~45%
网卡2:20%~23% |
225.19ms |
3094ms |
457 |
1 |
4.分析总结
(1)优化前版本问题分析
每个客户端都动态分配内存,服务端发数据时,要向每个客户端拷贝一份数据。当大量有大量客户端上线时,服务端出现带宽、CPU利用不充分,动态申请内存,大量内存拷贝等的问题。
(2)优化后版本改进
对缓存进行优化,所有客户端使用同一块内存,避免动态申请内存,避免大量内存拷贝。
(3)结果比较
根据测试数据,改进后的版本可以接受更多的并发流且不影响观看的效果,提高了服务器的CPU和网络利用率,并发流的数量增加了100%。在相同并发流的情况下,优化后的版本也比baseline的版本性能更好,反应在内存使用更少,响应时间更快。
附录:测试数据
| 并发数 |
服务器端 |
客户端 |
| CPU占用率(%) |
内存占用量(M) |
网络流量(%) |
平均响应时间(ms) |
最大响应时间(ms) |
平均码流(kbps) |
| 0 |
1% |
89.7M |
0% |
- |
- |
- |
| 100 |
1%~
2% |
91M |
网卡1:4%~5% |
12.83ms |
30ms |
459 |
| 200 |
3%~
5% |
92M |
网卡1:9%~10% |
15.07ms |
40ms |
462 |
| 300 |
8%~
16% |
93M |
网卡1:14%~16% |
21.33ms |
161ms |
458 |
| 400 |
15%~
18% |
94.2M |
网卡1:17%~23% |
29.14ms |
210ms |
460 |
| 500 |
13%~
21% |
95.2M |
网卡1:23%~27% |
37.21ms |
461ms |
458 |
| 600 |
15%~
22% |
96.6M |
网卡1:27%~31% |
42.85ms |
2984ms |
459 |
| 700 |
20%~
25% |
97.6M |
网卡1:33%~37% |
71.33ms |
440ms |
457 |
| 1000 |
31%~
34% |
101.5M |
网卡1:20%~23% 网卡2:20%~23% |
64.32ms |
1756ms |
458 |
| 1200 |
36%~
40% |
102.7M |
网卡1:30%~33% 网卡2:20%~23% |
77.67ms |
2724ms |
459 |
| 1500 |
39%~
42% |
106M |
网卡1:43%~45%
网卡2:20%~23% |
225.19ms |
3094ms |
457 |