一步一步打造WebIM(3)——性能测试
在一步一步打造WebIM(1)和(2)中,已经讨论了如何开发一个WebIM,并且使用缓存来提高WebIM的性能,本文将编写一个程序模拟大量用户登录来对WebIM进行性能测试。
1.200个用户同时在线
测试一将模拟200个用户同时登录的聊天室,每个用户以1条消息/秒的速度发送消息(由于网络和服务器处理延迟,可能多于1秒)
环境参数
操作系统:Window Server 2003
内存:2G
CPU:AMD Athlon(tm) 64 X2 Dual 2.4GHz
服务器:IIS6
数据库:SQLite
消息缓存数量:200
测试过程截图
测试结果
测试结果解析
测试程序启动了200个接收线程和200个发送线程(以1条消息/秒的速度发送消息,连续发50条),根据测试结果显示,发送消息的平均延迟大概为1000ms(即从客户端发送消息到服务器将消息写到缓存中大概要1000ms),接收消息的平均延迟为大概600ms(服务器将消息写到缓存600ms后,用户才在浏览器中接收到该消息)。由于每一个用户都会接受到其它199个用户的消息,因此,200个接受线程如果消息完全接收,应该有200*50*200 = 2000000条消息,显然,当发送消息的200个线程结束时,接收消息的线程仍然没有结束。由于发送消息的平均延迟大概为1000ms,因此,相当于200个用户同时以1条消息/2秒的频率向聊天室发送消息。
2.500个用户同时在线
测试一将模拟500个用户同时登录的聊天室,每个用户以1条消息/秒的速度发送消息(由于网络和服务器处理延迟,可能多于1秒)
环境参数
操作系统:Window Server 2003
内存:2G
CPU:AMD Athlon(tm) 64 X2 Dual 2.4GHz
服务器:IIS6
数据库:SQLite
消息缓存数量:200
测试过程截图
测试结果
测试结果的意义和测试1类似,因此不做详细解析
从以上测试来看,同时在线人数达到500时,延迟还是比较大的