作为一个通讯基础组件,其稳定性必须进行大量的测试。因为服务必须保持不7x24不间断地运行,任何的内存的持续性增长都会导致服务最终因为内存问题而倒下。Beetle为了保证这一点在1.2的版本进行了各项优化,经初步测试进行大量并发的同时进行长时间压力测试,经过十几亿次的请求应答后Beetle依然保持着稳定的内存使用状况。
以下是测试描述和结果。
服务端: CORE E4300 1.8G win2003
两台client建立4K个长连接,每个连接大概每0.1秒向服务器发送请求,请求对象是
class Register : IMessage { public string UserName; public string EMail; public int Tisk = Environment.TickCount; public void Save(BufferWriter writer) { writer.Write(UserName); writer.Write(EMail); writer.Write(Tisk); } public void Load(BufferReader reader) { UserName = reader.ReadString(); EMail = reader.ReadString(); Tisk = reader.ReadInt32(); } }
服务端获取分析数据后反序列化成对像,然后把该消息回应给客户端。服务器监控结果如下:
测试表明beetle在4000个连接接入的情况下进行每秒3W多的请求和应答,在处理了十几亿次的时候还保持着良好的内存使用状况。beetle 1.2在发布的时候在同样的强度测试下,内存占用率会降低50%