ovs-dpdk bridge internal port 访问延迟问题, fix
来源:互联网 发布:省市区县json数据 编辑:程序博客网 时间:2024/05/17 22:17
转载请注明出处:http://blog.csdn.net/hliyuxin/article/details/51736742
现有的云主机结构中,物理机通过bridge的brpri和linux系统通信(如dns, 云硬盘等),当主机负载比较高时,访问主机的管理口出出现延迟。
Bridge brpri
Controller “tcp:127.0.0.1:56XXX”
is_connected: true
fail_mode: standalone
Port “n-1b107218”
Interface “n-1b107218”
type: dpdkvhostuser
Port “n-96bc3455”
Interface “n-96bc3455”
type: dpdkvhostuser
Port brpri
Interface brpri
type: internal
原因是,local port是tap类型port, 在main线程中的dpif_netdev_run处理,主机负载比较高时且local port的流量比较大时,main线程有很多其它的事情处理,所以导致local port 响应延迟。
这时,将local port 的处理单独用一个pmd线程。修改代码之后,访问延迟的问题不再出现。
diff --git a/lib/netdev.c b/lib/netdev.cindex 19dc824..a051a0e 100644--- a/lib/netdev.c+++ b/lib/netdev.c@@ -112,6 +112,7 @@ netdev_is_pmd(const struct netdev *netdev) return (!strcmp(netdev->netdev_class->type, "dpdk") || !strcmp(netdev->netdev_class->type, "dpdkb") || !strcmp(netdev->netdev_class->type, "dpdkr") ||+ (!strcmp(netdev->netdev_class->type, "tap") && strcmp(netdev->name, "ovs-netdev")) || !strcmp(netdev->netdev_class->type, "dpdkvhostcuse") || !strcmp(netdev->netdev_class->type, "dpdkvhostuser")); }@@ -531,6 +532,8 @@ netdev_get_numa_id(const struct netdev *netdev) { if (netdev->netdev_class->get_numa_id) { return netdev->netdev_class->get_numa_id(netdev);+ } else if (!strcmp(netdev->netdev_class->type, "tap") && strcmp(netdev->name, "ovs-netdev")) {+ return 0; } else { return NETDEV_NUMA_UNSPEC; }......
0 0
- ovs-dpdk bridge internal port 访问延迟问题, fix
- OVS-DPDK VM出现 virtio_net virtio4: output.0:id 30 is not a head 问题 dpdk-vhost bug fix
- ovs支持dpdk-bond类型port更改
- OVS+DPDK
- ovs + dpdk版本说明
- ovs + dpdk版本说明
- Ovs+Dpdk简单实践
- ovs+dpdk测试总结
- ovs+dpdk测试总结
- 还用ovs+dpdk?
- 使用OVS DPDK
- ovs+dpdk-docker实践
- 2017 DPDK summit 主讲美团云&OVS-DPDK
- 使用OVS DPDK (by quqi99)
- centos6.5使用ovs-dpdk
- ovs+dpdk bond功能总结
- DPDK+OVS+qemu环境测试
- ovs-dpdk和ovs-kernel的checksum处理
- Gacutil.exe(全局程序集缓存工具)
- 解决eclipse中Adb connection Error:远程主机强迫关闭了一个现有的连接 的问题
- 第128课: Spark Streaming源码经典解读系列之三:JobScheduler工作内幕源
- Android热修复学习(二)
- 求二叉树的宽度C语言版
- ovs-dpdk bridge internal port 访问延迟问题, fix
- Android进程间通信(二):使用AIDL实现进程间通信
- 差分约束系统
- Linux 挂载 新磁盘
- Maven的安装和settings.xml的配置
- unity中建立 Socket 简单通信
- java与C++的区别
- 消除数组相同项,把该项之后的前移
- HITS算法思想