摘要:
# 原因 编译的时候指定的动态库,在运行时没有找到。因为编译和运行需要查找的目录是不通用的,需要在运行时指定查找动态库的目录。 # 解决方法 运行时,指定动态库搜索的路径 ``` export LD_LIBRARY_PATH=/xxx/lib:$LD_LIBRARY_PATH ``` 阅读全文
摘要:
驱动 建议使用vfio-pci,依赖系统的vfio igb_uio从DPDK v20.02开始禁止编译。可以通过CONFIG_RTE_EAL_IGB_UIO打开编译。igb_uio计划迁移到其他项目。 uio_pci_generic是linux系统提供的,不支持virtual function (V 阅读全文
摘要:
# 下载源码 http://core.dpdk.org/download/ # 编译 http://core.dpdk.org/doc/quick-start/ ## 安装python3 ## 安装ninja ``` yum install ninja-build ``` ## 安装meson `` 阅读全文
摘要:
前言 https://www.cnblogs.com/studywithallofyou/p/17435497.html https://www.cnblogs.com/studywithallofyou/p/16695550.html 上面的文章提到了一些相关的知识,本篇单独针对CPU进行详细讲解 阅读全文
摘要:
# 编译产物 hyperscan编译完成后有如下文件 ``` ls -R .: include lib64 share ./include: hs ./include/hs: hs_common.h hs_compile.h hs.h hs_runtime.h ./lib64: libhs.a li 阅读全文
摘要:
hyperscan是intel开发的用于高效正则匹配的工具。适用场景就是数据量大,性能要求高,匹配关键字领域。 hyperscan会把需要检测的关键字/正则表达式转换成对应的db数据,然后使用这些db数据进行匹配。所以如果数据更改了,需要重新创建。 理论上只能在intel的x86架构下才可以正常使用 阅读全文
摘要:
原因 使用的gcc没有找到对应的glib库。 每个版本的glib都会有改变,所以使用的时候必须匹配。 大部分是因为自己编译升级了gcc,再用新的gcc编译程序时没有找到当时匹配的类库。 查找原因 报错提示很明确了,/lib64/libstdc++.so.6中没有找到GLIBCXX_3.4.26版本内 阅读全文
摘要:
有人担心国内版夹带私活,所以选择了国际版。不过我是因为原来windows下开发,默认查找下载的,当然是国内版。不过后来转linux系统,默认下载的是国际版。这里说明一下各个区别。 # 区别 - 国内版登录是火狐通行证,数据保存在国内 - 国际版数据当然保存在另一个服务器,或者说火狐的国际服务器 # 阅读全文
摘要:
很多人都说用go代替php或者java的最大短板就是写业务太反人类。经过最近的一些使用,发现确实与常见的java或者c++有些区别,在这里说明一下。 go继承多态的现状 go没有类的概念 也没有所谓的继承多态。所以按照常规用法开发相应的业务逻辑,确实不适用。 go只有struct和interface 阅读全文
摘要:
udp的好处很明显,效率高,减少了建立连接的流程,减少了报文头的占比,也减少了维护连接的开销。缺点就是不稳定,会丢包。还有就是由于udp的高效,导致用于udp的一些应用开发,并发都比较大,更容易丢包。 # io复用 SO_REUSEADDR SO_REUSEPORT 创建listener用来监听数据 阅读全文