网络库性能测试
2016-04-23 16:09
393 查看
一、背景:公司,基于libuv封装了一个网络库。对该网络库进行了性能测试。
二、测试说明:
暂时,进行了echo程序测试,但是要求对数据包分成一个个消息(这样,如果一个包很长,那么需要先缓冲,等有足够的数据,才可以回复。这样相对符合现实).
另外,测试的client/server需要在不同的机器。
三、测试方案:
1、1024个链接同时发包,每一个包长度为512字节。
结果:该测试比较正常,稳定,没发现什么问题。
2、1024个链接同时发包。每一个链接发的包是不一样大的。发包大小种类有:{32,128,512,1*1024,4*1024,16*1024,64*1024,256*1024,1*1024*1024};
结果: 1、可能会存在链接无法及时断开的情况,甚至是无法断开的情况(即、客户端已经退出,但是,server端查看链接仍然存在).
2、内存会比较大。在测试512字节,相同大小的包,内存占用不到5M。但是,这里测试,内存近2G。
3、在客户端退出一段时间之后,server会将内存还给系统。如果连接断全部断开,那么几乎全部还给系统(占用不到5M);如果连接没有全部断开(剩余4~5个链接没断开),那么会占用大约11M。
四、其它
在这个测试过程中,也尝试使用了其它内存分配器(jemalloc,tcmalloc)
1、用这些内存分配器,并没有想象中的性能提高;
2、内存似乎不能及时的返回给系统。
[当然,可能我的用法存在问题]
五、心得
1、内存相关
1-1、在网络性能测试中,动态申请内存(最好不要用new,用malloc等直接申请)
1-2、在动态申请内存外面加一层包裹函数。
这样的好处,是可以在测试的时候,可以保证统一入口。这样的话,在必要的时候,可以进行必要的统计。很容易就知道内存是否全部释放。
2、网络相关
2-1、网络程序,在网络I/O将占用很大的CPU比例;所以,发送缓冲还是有必要存在的。
2-2、网络程序,心跳包很有必要。网络程序会存在断链不完全的情况。心跳包可以解决这个问题。
二、测试说明:
暂时,进行了echo程序测试,但是要求对数据包分成一个个消息(这样,如果一个包很长,那么需要先缓冲,等有足够的数据,才可以回复。这样相对符合现实).
另外,测试的client/server需要在不同的机器。
三、测试方案:
1、1024个链接同时发包,每一个包长度为512字节。
结果:该测试比较正常,稳定,没发现什么问题。
2、1024个链接同时发包。每一个链接发的包是不一样大的。发包大小种类有:{32,128,512,1*1024,4*1024,16*1024,64*1024,256*1024,1*1024*1024};
结果: 1、可能会存在链接无法及时断开的情况,甚至是无法断开的情况(即、客户端已经退出,但是,server端查看链接仍然存在).
2、内存会比较大。在测试512字节,相同大小的包,内存占用不到5M。但是,这里测试,内存近2G。
3、在客户端退出一段时间之后,server会将内存还给系统。如果连接断全部断开,那么几乎全部还给系统(占用不到5M);如果连接没有全部断开(剩余4~5个链接没断开),那么会占用大约11M。
四、其它
在这个测试过程中,也尝试使用了其它内存分配器(jemalloc,tcmalloc)
1、用这些内存分配器,并没有想象中的性能提高;
2、内存似乎不能及时的返回给系统。
[当然,可能我的用法存在问题]
五、心得
1、内存相关
1-1、在网络性能测试中,动态申请内存(最好不要用new,用malloc等直接申请)
1-2、在动态申请内存外面加一层包裹函数。
这样的好处,是可以在测试的时候,可以保证统一入口。这样的话,在必要的时候,可以进行必要的统计。很容易就知道内存是否全部释放。
2、网络相关
2-1、网络程序,在网络I/O将占用很大的CPU比例;所以,发送缓冲还是有必要存在的。
2-2、网络程序,心跳包很有必要。网络程序会存在断链不完全的情况。心跳包可以解决这个问题。
相关文章推荐
- Java IO与NIO的一些文件拷贝测试
- 推荐六款WEB上传组件性能测试与比较第1/10页
- C#代码性能测试类(简单实用)
- asp 性能测试报告 学习asp朋友需要了解的东西
- 使用console进行性能测试
- 1亿条记录的MongoDB数据库随机查询性能测试
- eval的两组性能测试数据
- Java常用排序算法及性能测试集合
- Java中的StringBuilder性能测试
- Java中Map的遍历方法及性能测试
- python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
- nginx 和apache 性能测试对比
- 对性能测试的认识
- 有关性能测试结果的几点分析原则
- 性能测试工程师的面试题
- 转载:性能测试经验
- 测试过程控制----如何开展性能测试
- 性能测试, 压力测试 , 负载测试和 容量测试 的区别与联系
- 性能测试小Tips
- 软件测试LR通用性能分析流程