自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 dpdk-ans support 5g upf

dpdk-ans 支持5g upf 数据面转发。单机小包达到40g pps转发性能。

2020-03-11 08:22:41 706

原创 vpp涉及的专利

Software ArchitectureThe fd.io vpp implementation is a third-generation vector packet processing implementation specifically related to US Patent 7,961,636, as well as earlier work. Note that the Ap...

2019-10-15 14:23:32 543

原创 all services run in userspace container network

container network 全部bypass kernel。全部跑在用户态。  

2019-02-13 18:45:14 274

原创 ans website

https://ansyun.comhttps://ansyun.github.io/welcome comments.

2019-02-08 19:09:20 302

原创 dpdk-ans 低时延用户态TCP/IP协议栈

新定制了低时延ans,TX 平均时延1024cycle,0.6us,RX平均时延1803 cycle,1.06us。TX计算的时延间隔是:app调用send 开始 到 调用网卡TX结束。RX计算的时延间隔是:开始调用网卡RX  到 app调用recv结束。详情参见:https://github.com/ansyun/dpdk-ans...

2018-06-16 21:12:10 2822

原创 dpdk http benchmark 测试工具

Link: https://github.com/ansyun/dpdk-httpperf$ git clone https://github.com/ansyun/dpdk-httpperf.git$ makeroot@ubuntu:~/src/dpdk-httpperf# ./dpdk-httpperf -t12 -c5000 -d30s http://10.0.0.10:80/i

2018-01-03 09:03:39 1358

原创 dpdk加速网络协议栈ANS,单core路由转发+1000条ACL 64字节达到8.43Mpps

高性能防火墙。

2017-11-23 13:48:29 1537

原创 dpdk加速网络协议栈ANS,单core路由转发+1000条路由,64字节达到11.78Mpps

dpdk, ans, 路由转发

2017-11-23 13:45:41 916

原创 dpdk加速网络协议栈ANS用户手册

文章介绍了如何编译,配置,使用加速网络协议栈ANS。

2017-11-12 14:37:12 5062

原创 基于dpdk的iperf性能测试

初步测试:/dpdk-iperf# ./dpdk_iperf3 -s --bind 10.0.0.2EAL: Detected 40 lcore(s)EAL: Detected 2 NUMA nodesEAL: Multi-process socket /var/run/dpdk/rte/mp_socket_39587_4958d65583aec4EAL: Prob...

2016-09-26 19:58:46 5123 1

原创 基于dpdk协议栈的nginx性能

- dpdk-nginx CPS performance```CPU: Intel(R) Xeon(R) CPU E5-2683 v3 @ 2.00GHzNIC:82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)ANS run on a lcore.4 dpdk-nginx run on ANS.# ./wrk --ti...

2016-09-21 20:43:15 5711 3

原创 基于dpdk的redis,性能大大提高

基于dpdk的userspace 协议栈上的redis,一个lcore性能大大提高,redis的性能也大大提高。* Performance Testing ```====ENV=== CPU:Intel(R) Xeon(R) CPU E5-2609 v4 @ 1.70GHz.NIC:Ethernet controller: Intel Corporation 82599ES 1

2015-12-08 11:33:54 4063 2

转载 linux 网络编程:epoll 的实例

在前面已经经过了PPC、TPC、select之类( TPC就是使用进程处理data,TPC就是使用线程处理 ),前面两个的缺点大家应该都是知道的是吧,对于select( 其实poll和他差不多 ),缺点是能同时连接的fd是在是不多,在linux中一般是1024/2048,对于很大的服务器来说是不够的!当然我们可以自己修改其值!但是效率上就会下降!       对于改进poll的epoll来

2014-11-18 15:03:37 671

转载 Linux下的TCP Socket简单例子

Linux下的TCP Socket简单例子 (2013-01-23 13:06:17)转载▼标签: it 客户端代码 client.c#include #include #include #include int main(int argc, char **argv){    int

2014-11-18 14:48:48 571

转载 透过 Linux 内核看无锁编程

非阻塞型同步 (Non-blocking Synchronization) 简介如何正确有效的保护共享数据是编写并行程序必须面临的一个难题,通常的手段就是同步。同步可分为阻塞型同步(Blocking Synchronization)和非阻塞型同步( Non-blocking Synchronization)。阻塞型同步是指当一个线程到达临界区时,因另外一个线程已经持有访问该共享数据

2014-11-05 08:29:56 606 1

原创 linux进程内存布局--randomize_va_space

内存管理是操作系统的核心之一,最近在研究内核的内存管理以及 C 运行时库对内存的分配和管理,涉及到进程在内存的布局,在此对进程的内存布局做一下总结: 1. 32 位模式下的 linux 内存布局图上的各个部分描述得比较清楚,不需再做过多的描述。从上图可以看到,栈至顶向下扩展,并且栈是有界的。堆至底向上扩展, mmap 映射区域至顶向下扩展, mmap 映射区域和堆相

2014-11-01 19:04:08 8152

转载 linux进程退出后操作系统是如何删除这个进程对应的内核资源

进程退出,大概可以分为三种方式:运行完后正常退出,发生某种异常如访问非法内存,除零等的异常退出,被kill掉而退出的。作为程序的main,它的原型应该是: int main(int argc, char argv[]),虽然以前也能用void main(int argc, char argv[]) ,如在VC6中可以编译通过,但是在新一些的编译器如gcc3.2和g++中,要么是会产生警告,要么

2014-10-25 22:48:16 1410

转载 Unix域套接字

管道由于只能实现具有亲缘进程的进程间通信,使用受到了很大的限制,命名管道解决了这一问题。但是,无论是管道还是命名管道,都只能实现单向通信(在只创建一个管道的情况下)。使用套接字除了可以实现网络间不同主机间的通信外,还可以实现同一主机的不同进程间的通信,且建立的通信是双向的通信。这里所指的使用套接字实现进程间通信,是由将通信域指定为PF_UNIX来实现的。该函数的形式如下:int socke

2014-10-20 12:28:39 494

转载 linux时钟RTC,TSC,PIT,jiffies

1 基本概念定时机制连同一些更可见的内核活动(如检查超时)来驱使进程切换。两种主要的定时测量:保存当前的时间和日期,以便能通过time(), ftime()和gettimeofday()系统调用把它们返回给用户程序。维持定时器,这种机制能够告诉内核或用户程序某一时间间隔已经过去了。定时测量是由基于固定频率振荡器和计数器的几个硬件电路完成的。

2014-10-20 08:50:18 9358

转载 Linux下的函数执行时间的统计方法

如何测试某个函数的执行时间是做实验时经常用到的功能,在此比较Linux下的测试函数,主要是其精确度。我们采用统一的测试标准程序(standard.c): #include #define MAX 1000    /* the loop count */ /* function: do loop operation * input: NULL * output: counte

2014-10-19 14:11:49 385

转载 linux TCP/UDP SOCKET编程

TCP/IP协议叫做传输控制/网际协议,又叫网络通信协议TCP/IP虽然叫传输控制协议(TCP)和网际协议(IP),但是实际上是一组协议,包含ICMP, RIP, TELENET, FTP, SMTP, ARP, TFTP等。从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层、网络层、传输层、应用层。 其实自己并没有深入了解过协议,写这篇文章的目的也只是自己做下学习笔记初步

2014-10-18 15:11:05 788

转载 mmap和shm共享内存的区别和联系

共享内存的创建根据理论: 1. 共享内存允许两个或多个进程共享一给定的存储区,因为数据不需要来回复制,所以是最快的一种进程间通信机制。共享内存可以通过mmap()映射普通文件(特殊情况下还可以采用匿名映射)机制实现,也可以通过系统V共享内存机制实现。应用接口和原理很简单,内部机制复杂。为了实现更安全通信,往往还与信号灯等同步机制共同使用。mmap的机制如:就是在磁盘上建立一个文

2014-10-13 09:06:13 5630

转载 dpdk 内存初始化

一  前言http://www.dpdk.org/  dpdk 是 intel 开发的x86芯片上用于高性能网络处理的基础库,业内比较常用的模式是linux-app模式,即利用该基础库,在用户层空间做数据包处理,有了这个基础库,可以方便地在写应用层的网络包处理高性能程序,目前该库已经开源。Main librariesmulticore framework   多核框

2014-10-13 08:49:21 1614

转载 使用信号量和共享内存实现进程间通信

共享内存是运行在同一台机器上的进程间通信最快的方式,因为数据不需要在不同的进程间复制。通常由一个进程创建一块共享内存区,其余进程对这块内存区进行读写。共享内存往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。使用共享存储来实现进程间通信的注意点是对数据存取的同步,必须确保当一个进程去读取数据时,它所想要的数据已经写好了。通常,信号量被要来实现对共享存储数据存取的同步,另外,可

2014-10-11 15:04:39 2821 1

原创 dpdk mbuf

void rte_pktmbuf_init(struct rte_mempool *mp,__attribute__((unused)) void *opaque_arg,void *_m,__attribute__((unused)) unsigned i){struct rte_mbuf *m = _m;uint32_t buf_len = mp->elt_size -

2014-10-05 21:02:48 1509

转载 Linux中线程与CPU核的绑定

最近在对项目进行性能优化,由于在多核平台上,所以了解了些进程、线程绑定cpu核的问题,在这里将所学记录一下。    不管是线程还是进程,都是通过设置亲和性(affinity)来达到目的。对于进程的情况,一般是使用sched_setaffinity这个函数来实现,网上讲的也比较多,这里主要讲一下线程的情况。    与进程的情况相似,线程亲和性的设置和获取主要通过下面两个函数来实现:int

2014-09-28 22:07:49 1375

转载 原子操作(atomic operation)

深入分析Volatile的实现原理引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上I

2014-09-18 21:35:16 733

转载 RCU

定义在头文件linux/rcupdate.h中;一、RCU原理RCU,全名Read-Copy-Update(读-拷贝-更新);对于被RCU所保护的共享资源,读执行单元不需要获得任何锁就可以访问到它,也不需要使用原子指令,而且在除Alpha的所有架构上也不需要使用内存栅(Memory Barrier),因此不会导致锁竞争、内存延迟以及流水线停滞;不需要锁,也使得使用更加容易,因为死锁问题就不

2014-09-18 21:34:20 675

转载 RCU(Read-Copy Update)

RCU(Read-Copy Update)2008-08-01 21:52:42分类: LINUXRCU(Read-Copy Update),对于被RCU保护的共享数据结构,读者不需要获得任何锁就可以访问它,但写者在访问它时首先拷贝一个副本,然后对副本进行修改,最后使用一个回调(callback)机制在适当的时机把指向原来数据的指针重新指向新的被修改的数据。这个时机就是所有引用

2014-09-18 21:29:50 1273

原创 DPDK原生TCP/IP stack架构

dpdk-ans架构介绍

2014-09-17 11:58:40 15438 5

6wind-support-intel-dpdk-presentation

6wind 提供的整套的基于dpdk的网络组件。

2015-09-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除