全部文章Ta的评论
- pktgen是性能强大、功能丰富的测试工具。它的发包能力可达10M以上,而普通的发包工具,例如iperf、netfperf只能达到几十万的水平。原因在于,pktgen是内核模块,直接在内核中构建数据包并发送,不存在从用户空间向内核空间拷贝数据的过程。另外值得一提的是pktgen-dpdk,虽然运行在用户态,但是由于用户态直接接管网卡设备,也不存在从用户态向内核拷贝数据的过程。这两个性能测试工具性能相仿。从加速比和功能丰富角度看,pktgen-dpdk更胜一筹,从部署复杂度和兼容性看,pktgen内核版更具优势。 正是因为pktgen是一个内核模块,它的使用界面不是很友好(通过修改虚拟文件的值来进行配置)。好在Linux源码中提供了脚本协助用户完成这个操作。 本文旨在介绍一种经过验证的部署方式。读者可以根据本文介绍的步骤快速搭建一个测试环境。李****一2023-10-081260
- 在网络设备开发过程中,性能测试、性能调优需要强大而灵活的发包工具。传统的基于内核的打流工具,例如iperf、netperf等,性能和功能难以满足要求。pktgen-dpdkj基于用户态开发套件DPDK开发,拥有强大的性能和丰富的特性。本文给出一个经过验证的pktgen-dpdk的部署实例,供大家参考。 在下文中,很多组件都带有版本号,笔者保证这样的版本组合是经过验证的。其他版本组合可能需要探索、摸索。如果你需要快速搭建一个可以使用的环境的话,建议直接采用笔者验证过的版本组合。李****一2023-10-082911
- 当我们需要修改Linux内核启动参数时,很多同学喜欢直接修改/etc/grub2.cfg文件。这不是一个好的做法。原因是:一方面,我们升级内核后,需要将这个文件再改一遍,很不方便;另一方面,这样容易出错,导致内核启动失败。 实际上,Linux已经为我们准备了一系列工具来安全方便地修改内核参数。以下以添加预留大页内存为例,说明如何使用这些工具来修改Linux内核启动参数。李****一2023-09-271760
- 今天遇到一个问题,使用virsh edit <vm>命令调整了虚拟机的内存大小后, 保存退出,再次使用virsh edit <vm>命令查看虚拟机配置文件,发现内存又改回了先前的值。李****一2023-09-27960
- 李****一2023-06-27770
- 李****一2023-06-272250
- 我们在工作时,经常试使用SSH连接到远程主机。这有个令人烦恼的问题,即一旦SSH连接中断,运行的长时任务也会被终止。我们希望有一种机制, 可以让任务在后台运行,然后我们可以断开SSH连接。等一段时间后,我们再次使用SSH连接远程主机,并查看之前运行的长时任务的运行情况。笔者从互联网收集整理了一系列方法实现以上目的。李****一2023-06-27600
- 李****一2023-06-2712340
- RCU 是一种内核同步机制,在2002年10月加入到 Linux 内核中。它属于“无锁编程”的范畴,实现的功能类似于“读写锁”。但是与“读写锁”相比,RCU有着显著的优势: 读者性能极高。特别是当RCU以QSBR方式运行时,读者同步开销为0。 无竞争、无阻塞。读者写者之间、读者读者之间均不互相阻塞,也没有死锁、活锁问题。 当然RCU也有其劣势:当写操作十分频繁时,写者开销较大。虽然写者不会被阻塞或者出现“写饥饿”情况,但是当有大量写操作时,写者的综合开销不亚于,甚至高于传统的读写锁。另外,RCU不支持多写者并发。如果有多个写者的话,写者之间需要加互斥锁(或自旋锁)。 URCU是RCU的用户态版本,目前已经在各种用户态网关中广泛应用。参考:https://github.com/urcu/userspace-rcu DPDK做为用户态数据面开发利器,在DPDK19中首次引入。与URCU库相比,它更适合DPDK的PMD模型,使用起来更简便。 注意:本文旨在向读者初步介绍DPDK-RCU库的使用方式,并假定读者对“锁”、“RCU”、“URCU”、“临界区”、“宽限区”等概念有了充分李****一2023-06-273500
- 本文旨在介绍一种支持并发读写的无锁哈希表结构。其核心思想来源于两篇论文: Michael, M. M. High performance dynamic lock-free hash tables and list-based sets. In Proceedings of the fourteenth annual ACM symposium on parallel algorithms and architectures, ACM Press, (2002), 73-82. Ori Shalev and Nir Shavit. Split-ordered lists: Lock-free extensible hash tables. J. ACM 53, 3 (May 2006), 379-405. 其中,第一篇论文重点介绍了无锁单链表的实现原理。有了这篇论文,已经可以实现无锁哈希表了(将冲突链替换为论文中表述的无锁单链表)。第 二篇论文更进一步,提出“分裂排序表”的概念,实现了无锁哈希表的动态扩容。基于第二篇论文的分裂排序表已经在URCU库中实现,参考:https://g李****一2023-06-272460
共 10 条
- 1
页
没有更多了
个人简介
暂未填写公司和职务
暂未填写个人简介
暂未填写技能专长
暂未填写毕业院校和专业
个人成就
共发表过 10 篇文章
文章获得 1 次赞同
文章被浏览 2881 次
获得 2 人关注
个人荣誉查看规则
有目共赏
初出茅庐