![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 53
the_dog_tail_grass
一个在互联网搬砖的程序猿,目前复旦大学非全日制软件工程硕士在读
展开
-
RSS/RPS/RFS究竟是个什么东西
RSS/RPS/RFS原创 2021-12-27 18:31:46 · 1756 阅读 · 0 评论 -
利用dpdk rte_ring实现进程间通信
进程间通信有很多方式,如果两个进程是在同一台机器上运行的,效率比较高的通信方式就是共享内存。关于共享内存的实现方式,双方可以通过mmap方式去映射到相同的内存上进而实现内存共享。DPDK实现的ring也可以帮助我们方便的实现高效率的进程间通信。具体方法如下。1.rte_ring需要与rte_mempool配合使用,通过rte_mempool来共享内存。2.primary进程通过rte_ring_create和rte_mempool_create分别创建ring和mempool。3.secon原创 2021-05-13 10:58:22 · 1328 阅读 · 0 评论 -
关于对齐的一些问题探讨
无论是自己写代码,还是阅读一些开源的代码,总会遇到一些对齐问题,经过查阅资料和自己编程做的一些小实验,总结下关于对齐的那些事。我个人把对齐分为字节对齐和页对齐,下面依次讨论1.字节对齐首先我们来思考一下CPU是如何读取数据的。先明确一个问题,CPU不是按照字节来处理数据的,而是按照字长来处理数据的。所谓字长,就是CPU可以一次性读取的数据长度。假设CPU是32位的,那么CPU一次性就可以读取32位的数据。按照CPU的设计,读取的地址总是32的倍数开始。字节对齐问题和CPU架构以及编译器有原创 2021-01-27 16:35:18 · 538 阅读 · 0 评论 -
DPDK kni模块分析
相关背景dpdk缺少相应的协议栈,这提升了dpdk的入门门槛。如果我们采用dpdk来开发代码,当网卡被用户态驱动绑定之后,我们不仅需要处理业务报文,还需要对arp,ping,tcp握手等消息进行处理,对于笔者目前的一个业务场景(缺少协议栈,控制面和用户名共用一个网卡不同ip,数据面需要提升收包性能,因此采用了dpdk。为什么控制面和用户名不用两张网卡呢?产品经理决定的~)来说就比较头疼。幸运的是dpdk提供了kni模块,来解决相应的问题。这篇文章就是介绍dpdk的kni模块的实现机制。建议先阅读下dpd原创 2021-01-16 16:09:41 · 1184 阅读 · 2 评论 -
centos安装性能监控工具Sysstat(源码安装)
关于Sysstat的介绍,网上有很多,就不在叙述,本篇博客主要讲如何用源码安装。首先可以在官网http://sebastien.godard.pagesperso-orange.fr/download.html或者是GitHubhttps://github.com/sysstat/sysstat下载源码下载完成后,解压,进入目录,分别执行./configure --disable-nlsmakemake install安装完成之后,敲入sar 2 5,如果有输出,表示安装成功。.原创 2020-08-20 19:37:25 · 920 阅读 · 0 评论