Hyperscan与Snort的集成方案

概况 Hyperscan作为一款高性能的正则表达式匹配库,非常适用于部署在诸如DPI/IPS/IDS/NGFW等网络解决方案中。Snort (https://www.snort.org) 是目前应用最为广泛的开源IDS/IPS产品之一,其核心部分涉及到大量纯字符串及正则表达式的匹配工作。本文将重点介绍如何将Hyperscan集成到Snort中来显著提升Snort的总体性能。具体集成代码已公开在 https://01.org/node/4298。 Snort简介 如图1所示,Snort主要分成五个... 继续阅读

2017版:KVM 性能优化之磁盘IO优化

接着第三块的内容,KVM磁盘性能方面的调优。磁盘IO方面我们可以从以下四个方面去着手优化: 磁盘类型选择 缓存模式选择 AIO 异步读写方式选择 磁盘IO调度器选择 1. 磁盘类型选择 磁盘方面,建议是用Virtio模式,在CentOS7.1 中,磁盘的类型有IDE 、SATA 以及virtio 三种。磁盘这块也有完全虚拟化和半虚拟化之分。virtio它就是半虚拟化的,最初是由澳大利亚的一个天才级程序员Rusty Russell编写,是一个在hypervisor之上的抽象API接口,它让客户机知... 继续阅读

2017版:KVM 性能优化之内存优化

我们说完CPU方面的优化,接着我们继续第二块内容,也就是内存方面的优化。内存方面有以下四个方向去着手: EPT 技术 大页和透明大页 KSM 技术 内存限制 1. EPT技术 EPT也就是扩展页表,这是intel开创的硬件辅助内存虚拟化技术。我们知道内存的使用,是一个逻辑地址跟物理地址转换的过程。虚拟机内部有逻辑地址转成成物理地址的过程,然后再跳出来,虚拟机这块内存又跟宿主机存在逻辑到物理的转换。有了EPT技术,那么能够将虚拟机的物理地址直接翻译为宿主机的物理地址,从而把后面那个转换过程去掉了,... 继续阅读

2017版:KVM性能优化之CPU优化

前言 任何平台根据场景的不同,都有相应的优化。不一样的硬件环境、网络环境,同样的一个平台,它跑出的效果也肯定不一样。就好比一辆法拉利,在高速公路里跑跟乡村街道跑,速度和激情肯定不同… 所以,我们做运维工作,也是如此。首先你得充分了解你所用的软件平台,然后根据你现有的生产环境去充分的测试,最后得出结果,做最优的调整。 KVM也是一样,首先要做的是充分的了解它,看看有哪些参数和设置我们可以做出调整,最终应用以求发挥最高的性能。 那么KVM的性能调优,我们可以从四个方面入手 —— CPU、... 继续阅读

基于virtio-user的新exception path方案

在DPDK使用环境中,物理网卡收到的包都绕开内核,直接到达DPDK应用中。但是,有些时候,用户希望把某些包(如控制报文)放到内核网络协议栈进行处理,这个路径在DPDK中被称作exception path。 现有方案 现有的exception path方案主要有三个: 1. KNI,作为目前DPDK用户使用的主要方案,其通过内核模块构造了一个虚拟网络接口,并且通过FIFO队列和用户态的DPDK应用交换数据包。该方案的缺点是KNI内核模块无法upstream,维护代价较大。详情请参见: http:/... 继续阅读

VFD大揭秘,一定有你想知道的

什么是VFD? VFD 的全称是Virtual Function Daemon。在网络虚拟化(NFV)环境下,VFD被用来配置网卡上的虚拟端口。 VFD 由AT &T 公司开发,具有开源软件许可Apache License, Version 2.0, 2016年4月在GitHub上发布。(https://github.com/att/vfd) VFD的相关背景 要说明VFD的由来,得先回顾一下网络功能虚拟化(NFV)的背景。 在经典的NFV架构中,虚拟交换机(vSwitch)是整个架构的... 继续阅读

DPDK中的memcpy性能优化及思考

内存拷贝(memcpy)这个操作看似简单,但长期以来存在很多关于其优化的讨论,各种编程语言库也都有对应实现,而对于memcpy性能评估测试的讨论就更多了。        那么如下的memcpy实现到底有什么问题? [crayon-5c1530204e794396050756/]         很简单,首先,这看起来太简单,不够高端,气势上就先输了;同时,代码没有使用Vector指令,没有指令级并行,没有做地址对齐处理,最终性能完全依赖于编译器的优化——然而这些并没有什么问题,在某些应用场景中这... 继续阅读

基于DPDK的虚拟网络包代理(broker)

1、虚拟网络包代理的商业需求     网络需要较好地分析与可视化最好的客户体验和投资回报率,这一点NPB(Network Packet Broker)可以做到,涵盖服务质量性能、工具和应用性能、安全。 但是,对于网卡出现的越来越偏向软件的需求(vEPC:virtual Evolved Packet Core,CORD等),物理NPB不足以或无法高效地完成,涉及到对网络流编程/重新编程、分析业务流程这两个方面。 2、虚拟网络包代理支持以下功能     基于以上的商业需求,我们需要开发一个可以支持以... 继续阅读

从PCRE到Hyperscan

        Hyperscan作为高性能的正则表达式匹配库,使用者通常乐意将其与传统的正则表达式匹配库进行比较。“为什么要用Hyperscan?”“使用Hyperscan对我有怎样的好处?”本文以一款广泛使用的传统的正则表达式匹配库PCRE为例,说明Hyperscan与PCRE的差异与优势。 PCRE简介         PCRE是Perl Compatible Regular Expressions的简称,是一款十分流行的用C语言编写的正则表达式匹配库,其灵感来源于Perl语言中的正则表达... 继续阅读