各种流量采集方式的性能对比测试结果

各种流量采集方式的性能对比测试结果

    近期对“原始套接字+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资源可用了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值