异数OS TCP协议栈测试(一)--数据传输篇

本文来自异数OS社区

github:  https://github.com/yds086/HereticOS

异数OS社区QQ群:  652455784

异数OS-织梦师(消息中间件)群: 476260389

测试目标

数据传输IO性能测试,主要是建立连接后测试收发数据的IO的性能,分为单向双向两种。

基本测试环境

VMware 12

异数OS宿主操作系统 debian 8 64位

CPU : NUC i3 2.6G 双核

内存:2GB

TCP参数默认是ACK Delay,带包头200字节负载,不带crc checksum, 无丢包,无硬件延迟情况。

测试方案一 (单核双向负载传输测试)

在同一个CPU核上创建一个Server,一个Client,使用ACK Delay模式,TCP双向收发,以太层使用异数OS软件交换机本地核定向转发。

客户端服务端总计IOPS, recv 7.2M, send 7.2M,软件交换机包交换能力20Mpps.

测试方案二 (单核单向负载传输测试)

在同一个CPU核上创建一个Server,一个Client,使用ACK No Delay模式,TCP单向收发,以太层使用异数OS软件交换机本地核定向转发。

客户端服务端总计IOPS, recv 5.1M, send 5.1M, 由于TCP ACK NoDelay的原因,软件交换机包交换能力28.5Mpps.

测试方案三 (多核双向负载传输测试)

双核CPU,CPU1仅创建Server,CPU3上创建两个Client, TCP双向收发,ACK Delay模式,以太层使用异数OS软件交换机定向跨核转发。

两客户端以及服务端IOPS总计recv 4.8M , send 4.8M ,软件交换机包交换能力估算为14Mpps,该模式下由于跨核软件交换机转发miss的情况较大,占用大概50%的CPU负载,因此分载方案失效,反而比单核集中负载情况下性能更低。

测试方案四 (多核单向负载传输测试)

双核CPU,CPU1仅创建Server,CPU3上创建两个Client, TCP单向收发,ACK NoDelay模式,以太层使用异数OS软件交换机定向跨核转发。

两客户端以及服务端IOPS总结,recv 3.8M ,send 3.8M , 对于软件交换机来讲,由于TCP ACK的原因,因此总计包转发为12Mpps,和上面多核双向传输测试有同样的问题。

总结

由于时间有限,简单看了下64字节包的IO能力(去除包头,仅10字节负载),性能大概提升有10%左右,由于软件交换机在单核环境中大概有20%的负载占用,多核更是达到50%,因此在真实硬件环境中预计每核有望达到双向总计2000W的IO能力,大概是主流操作系统IO能力的100倍左右,且主流操作系统一般IO能力不易多核扩充。

异数OS TCP协议栈测试(一)--数据传输篇相关推荐

  1. 异数OS 2017 DPDK 峰会观后感

    1.DPDK in Container 使用虚拟网卡设备技术为每一个容器分配一个IP 网卡适配器(queue).容器技术可以解决虚拟机技术中虚拟机过于臃肿,难于热迁移的问题,可能可以代替美团OVS方案 ...

  2. 异数OS 织梦师-水母(一)--消息队列篇 1

    异数OS 织梦师-水母(一)–消息队列篇 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 652455784 异数O ...

  3. 异数OS-织梦师-异数OS虚拟容器交换机(七) 走进4Tbps网络应用时代,加速5G应用真正落地...

    . 异数OS-织梦师-异数OS虚拟容器交换机(七) 走进4Tbps网络应用时代,加速5G应用真正落地 本文来自异数OS社区 github: https://github.com/yds086/Here ...

  4. 异数OS-织梦师-管仲(八) 并发危机解决之道

    异数OS-织梦师-管仲(八) 并发危机解决之道 文章目录 异数OS-织梦师-管仲(八) 并发危机解决之道 前言 管仲佐纠 <管子>专用申明 解不开的并发障碍 Redis的并发障碍 MapR ...

  5. 查看 并发请求数及其TCP连接状态

    服务器上的一些统计数据: 1)统计80端口连接数 netstat -nat|grep -i "80"|wc -l 2)统计httpd协议连接数 ps -ef|grep httpd| ...

  6. 查看httpd并发请求数及其TCP连接状态

    服务器上的一些统计数据: 1)统计80端口连接数 netstat -nat|grep -i "80"|wc -l 2)统计httpd协议连接数 ps -ef|grep httpd| ...

  7. 用户态TCP协议栈的调研

    一.各种用户态socket的对比 1.MTCP 简单介绍: 韩国高校的一个科研项目,在DPDK的2016年的技术开发者大会上有讲,所以intel将这个也放到了官方上,所以一般搜索DPDK的用户态的协议 ...

  8. tcp协议栈实现,tcp定时器与滑动窗口实现

    要实现用户态协议栈,必须要搞懂TCP,TCP 11个状态.滑动窗口.拥塞控制.定时器等等. 要使用用户态协议栈,内核提供的epoll就不起作用了,我们需要自己实现用户态的epoll.epoll内部涉及 ...

  9. 借助Docker单机秒开数十万TCP连接

    熟悉网络编程的都清楚系统只有65535个端口可用,1024以下的端口为系统保留,所以除去系统保留端口后可用的只有65411个端口,而一个TCP连接由TCP四元组(源IP.源端口.TCP.目标IP.目标 ...

  10. 查看Apache的并发请求数及其TCP连接状态

    查看Apache的并发请求数及其TCP连接状态: Linux命令: netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a] ...

最新文章

  1. 《Adobe Premiere Pro CS5经典教程》——2.9 用Media Browser查找素材
  2. idea怎么配置spring
  3. 安装 Ruby 和 Rails 开发环境
  4. 从知乎了解到,为什么Mysql禁用存储过程、外键和级联?
  5. Linux加密框架 crypto RC4
  6. java 课后习题 删除奇数元素下标 然后再删除值为奇数的下标
  7. 虚拟机无法联网解决方法
  8. 批处理添加桌面快捷方式
  9. Java自学 day02
  10. GHOST XP SP3快速装机版
  11. linux下python网络编程框架-twisted安装手记,linux下Python网络编程框架-Twisted安装
  12. 【数据产品案例】美团外卖O2O的用户画像实践
  13. 一万字长文解读中国的消费经济
  14. python可视化分析网易云音乐评论_网易云音乐评论催泪刷屏?我用Python抓取了1008328条热评告诉你为什么!...
  15. 华为公司 代码编码规范
  16. AndroidStudio安装JB系官方中文插件
  17. 袁斌:极空间家庭私有云,您的数字资产大管家
  18. Linux系统下返回上一级目录的命令
  19. java 黄金分割率_黄金分割率使您的网页设计更有效
  20. Python基础教程-菜鸟教程学习笔记1

热门文章

  1. java微信公众号要求_java实现微信公众号登录,详细的步骤及有关实现代码
  2. python全栈开发包括那些_简述Python全栈工程师要学会什么
  3. C# 文件大小字节byte换算为 Kb Mb Gb Tb
  4. 项目做PC端页面采用rem适配的使用步骤
  5. Marlin固件运动控制代码分析
  6. iOS开发iPhone竖屏icon尺寸与启动页尺寸汇总
  7. mysql索引失效情况
  8. 0xFFFF中的0x是什么意思
  9. bzoj2286: [Sdoi2011消耗战
  10. 非阻塞connect用法