各种流量采集方式的性能对比测试结果
2017-05-18 16:26
489 查看
各种流量采集方式的性能对比测试结果
近期对“原始套接字+recvfrom”,“原始套接字+mmap”,“pcap”和零拷贝四种采集方式做了采集性能的对比测试。 测试环境如下:P4 Xeon 1.6G 双核,内存2G
网卡流量为116MB/s,包数为30万个/s
测试程序使用单进程单线程,从开始采集以前和结束采集后计数,计算所消耗的时间。对包的处理方面,仅判断包的类型,统计个数和流量,无其他业务代码。
各种采集方式采集1000万个包所花费的时间为:
方式 时间 平均CPU占用率
===================================================
原始套接字+recvfrom 35.25s 60%
原始套接字+mmap 34.95s 46%
pcap 50.08s 100%
零拷贝 35.34s 0%
由于网卡上的流量根据实际情况在变化,因此“原始套接字+recvfrom”,“原始套接字+mmap”,“零拷贝”这三种方式消耗的时间可认为大致相同,不同在于CPU的占用率。PCAP的采集性能最低,如果不经过这次测试,我还一直以为PCAP是应用层采集方式中性能最高的呢!
测试说明:
1、LINUX对于网络流量的处理是比较优异的,底层的数据包会快速地送到应用层,从“原始套接字+recvfrom”,“原始套接字+mmap”,“零拷贝”这三种方式的采集时间大致相同就可以看出这一点。
2、对于高性能的数据采集,零拷贝始终是首选,如果空转的时候CPU都消耗得很高,则加上业务后根被没多少CPU资源可用了。
转自:http://blog.csdn.net/lionzl/article/details/7803324
相关文章推荐
- 各种流量采集方式的性能对比测试结果
- Apworks框架中各种仓储实现的性能基准测试与结果对比
- Apworks框架中各种仓储实现的性能基准测试与结果对比
- jQuery各种show/hide方式的性能测试
- jQuery各种show/hide方式的性能测试 .
- 各种模式虚拟化的网络性能对比测试
- HV和VM 内存性能测试对比结果
- ADO.NET 中 DataReader 各种读取方式性能比较/测试
- ADO.NET 中 DataReader 各种读取方式性能比较/测试
- ADO.NET 中 DataReader 各种读取方式性能比较/测试
- 各种URL生成方式的性能对比
- 各种 Java 的序列化库的性能比较测试结果
- 各种URL生成方式的性能对比
- Linux下各种主要文件系统的读写性能测试 ------------实际系统中的Nand Flash速度测试结果
- Android 用ffmpeg生成Gif 各种排列组合的性能测试结果
- dubbo典型协议、传输组件、序列化方式组合性能对比测试
- C调用LUA各种方式的性能对比
- SAS vs SSD各种模式下MySQL TPCC OLTP对比测试结果
- Java设计模式(四):原型模式深拷贝的两种实现方式,以及和new对象的性能测试对比
- android性能测试中各种数据的获取方式