以Nginx为代表,IO事件+定时器组成的事件驱动构成了现在高性能网络处理的基础,libev库是继libevent之后又一个事件库,为编写事件驱动程序提供底层的封装,相比libevent更加精简,没有附加额外的复杂功能。
PHP7中HashTable实现
发表于
|
分类于
日常记录
结构定义
SSL证书格式
发表于
|
分类于
日常记录
PKCS
intel dpdk的Poll Model Driver机制简介
发表于
|
分类于
日常记录
最近基于intell的dpdk框架开发高性能的Dns服务器,才开始接触dpdk。
Linux内核的网络协议栈是基于中断的,网卡收到数据包后发出中断信号,CPU停止当前的处理工作,进入中断环境,执行相应网卡驱动的中断处理程序。 这种处理方式适合通用的处理平台,使CPU可以执行多样化的任务。而对于一些专门处理网络事务的设备,很多都配有1G, 10G, 甚至40G网卡,高负载时,网卡中断非常频繁,每次处理网卡中断都要涉及进程上下文的切换,花费很多额外的时间,这时便有了轮询的处理方法,由CPU主动收包,更适合大流量的处理。