虚拟机和宿主机之间的高速通信方案

Posted li_Jiejun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚拟机和宿主机之间的高速通信方案相关的知识,希望对你有一定的参考价值。

虚拟机和宿主机之间高速通信

1 背景

    略

2 技术方案

2.1 通过虚拟串口

  通过serial channel实现,数据传输效率较高,但是不适合传输数据量大的数据。

2.2 通过共享文件夹

  通过9pfs实现,数据传输效率高,但是不适合做视频数据流的存储传输。

2.3 tcp socket通信

  虚拟机和服务器通过网络socket传输数据,数据传输效率低,数据传输延时较高,不适合实效性高的视频流场景。

2.4共享内存

  方案:在服务器上申请一块内存块,将内存块映射到虚拟机内,实现虚拟机和物理机通过内存块来共享数据。

  架构图:

  Debug demo

3 性能测试

功能 - 能进行数据的双向收发;

  性能 - 收和发12M数据量,两个动作总耗时1-2ms左右;

 性能 - 收和发400M数据量,两个动作总耗时40-50ms左右;

  

Cpu负载:

服务器端

 虚拟机端(4C4G)

4 缺陷

 安全性 - 因为使用的是内存映射模式,可以在虚拟机内操作物理机的内存地址进行攻击操作;

 资源占用 - 服务器端占用CPU-50%,客户端CPU - 28%(这是在sleep(0)下测试的,sleep1-2ms负载能降下很多)。

5 应用场景

虚拟机和物理机下的数据交互场景

以上是关于虚拟机和宿主机之间的高速通信方案的主要内容,如果未能解决你的问题,请参考以下文章

虚拟机和宿主机之间的高速通信方案

虚拟机之间互联通信

virutalbox怎样在虚拟机和主机之间共享文件夹

无网线的情况下,虚拟机和主机通信

Fedora中配置KVM的NAT网络连接虚拟机和宿主机

VirtualBox 虚拟机和宿主机互相通信