簡易檢索 / 詳目顯示

研究生: 邵鏡軒
Shao, Ching-Hsuan
論文名稱: OVS-DPDK-I: 一個高效使用 CPU 的高速開放虛擬交換機
OVS-DPDK-I: A CPU-Efficient High-Speed Open vSwitch
指導教授: 蔡孟勳
Tsai, Meng-Hsun
學位類別: 碩士
Master
系所名稱: 電機資訊學院 - 資訊工程學系
Department of Computer Science and Information Engineering
論文出版年: 2022
畢業學年度: 110
語文別: 英文
論文頁數: 45
中文關鍵詞: 開放虛擬交換機輪詢中斷虛擬機資源分配
外文關鍵詞: Open vSwitch, Polling, Interrupt, Virtual Machine, Resource Allocation
相關次數: 點閱:80下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 隨著雲端運算的發展,有各式各樣的需求以及使用情境出現,對於客戶以及營運商來說,不外乎希望用最少的資源達到最高的效益,此時,資源的妥善分配就顯得格外的重要。

    一台實體伺服器上通常會運行多個虛擬機,這些虛擬機除了會彼此傳輸數據外,也會與外界溝通,而這之間的橋樑就是交換機,其中, 開放虛擬交換機 (OVS) 是最受歡迎的選擇。
    除了原版的 OVS 外,還有加速版的 OVS-DPDK,優點是傳輸速度可以達到 5 倍以上,但是相對的,可能會需要花費較多的 CPU 去處理。

    營運商在啟動虛擬機時,會根據網路需求選擇配置 OVS 或是 OVS-DPDK。
    然而,使用 OVS 的虛擬機有其傳輸速度上限,無法應付突如其來的高傳輸需求;使用 OVS-DPDK 的虛擬機即使處於低傳輸需求,仍持續佔用 CPU,無法將 CPU 資源挪作其他用途。
    為了解決 OVS 及 OVS-DPDK 在資源分配彈性上的不足,我們提出基於 OVS-DPDK 的改良版本: OVS-DPDK-I。

    OVS-DPDK-I 透過輪詢及中斷模式的動態切換,讓 CPU 的分配可以隨著封包傳輸速度做調整,解決上述無法應付高傳輸需求及 CPU 持續佔用的問題。
    從我們的實驗結果可以發現,我們的方法可以達到與 OVS-DPDK 一樣高的傳輸速度,且當傳輸速度較小時,使用的 CPU 資源可以比 OVS-DPDK 還低 50%,甚至比 OVS 還低。
    省下來的 CPU 可以讓虛擬機擁有兩倍以上的運算資源。
    除了比較 CPU 使用率外,我們同時分析網路傳輸的延遲,並探討發送封包間隔時間呈不同分佈函數時的影響。

    With the development of cloud computing, more and more demands and usage scenarios have emerged.
    For both customers and operators, they want to get the most benefit with the least amount of resources.
    To achieve this, a good strategy for resource allocation is especially important.

    A physical server usually runs multiple virtual machines (VMs) on it.
    These VMs can transmit data between each other and the Internet, which is done by the switch.
    Open vSwitch (OVS) is one of the most popular virtual switches.
    In addition to the vanilla OVS, there is an accelerated version: OVS-DPDK, which can achieve 5 times the throughput but may also require more CPUs to process.

    When launching the VMs, the operator has to choose to configure OVS or OVS-DPDK according to the network requirements.
    However, the VM using OVS has an upper limit on the transmission speed and cannot handle the sudden high-speed transmission requirement;
    When a VM using OVS-DPDK transmits packets at a low rate, the CPU is still occupied by the OVS-DPDK and cannot be used for other purposes.
    In order to solve the problem of insufficient resource allocation flexibility of OVS and OVS-DPDK, we propose an improved OVS based on OVS-DPDK that called: OVS-DPDK-I.

    By switching between polling and interrupt modes, OVS-DPDK-I can dynamically adjust the CPU allocation according to the current packet transmission rate to solve the low throughput and high CPU utilization problems.
    We can observe from the experiment results that our method can transmit packets as fast as OVS-DPDK; when the transmission rate is low, the CPU utilization can be 50% lower than OVS-DPDK, even lower than OVS.
    The saved CPU allows the VMs to have more than two times the computing resources.
    In addition to comparing CPU utilization, we also analyze network latency and show the impact of different network traffic patterns.

    中文摘要 i Abstract iii Acknowledgements v Contents vi List of Tables viii List of Figures ix 1 Introduction1 2 Related Work 3 3 Background 6 3.1 How a NIC Receives Packets 6 3.2 Packet I/O Frameworks 7 3.3 Virtual Network I/O 8 3.4 Virtual Switches 9 4 Proposed Scheme 11 5 Experimental Setup 16 5.1 Evaluation Environment 16 5.2 Evaluation Items 18 6 Performance Evaluation 21 6.1 Experiment 1: P2P 22 6.2 Experiment 2: P2V2P 27 6.3 Experiment 3: V2V 31 6.4 Gamma Distribution 36 7 Conclusions and Future Work 40 References 41

    [1] Mary Zhang, “Top 10 cloud service providers globally in 2022.” https://dgtlinfra.com/top-10-cloud-service-providers-2022/.
    [2] M. C. Cohen, P. W. Keller, V. Mirrokni, and M. Zadimoghaddam, “Overcommitment in cloud services: Bin packing with chance constraints,” Management Science, vol. 65, no. 7, pp. 3255–3271, 2019.
    [3] Open vSwitch official website, “Open vswitch.” https://www.openvswitch.org/.
    [4] B. Pfaff, J. Pettit, T. Koponen, E. Jackson, A. Zhou, J. Rajahalme, J. Gross, A. Wang, J. Stringer, P. Shelar, K. Amidon, and M. Casado, “The design and implementation of open vSwitch,” in 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI 15), (Oakland, CA), pp. 117–130, USENIX Association, May 2015.
    [5] OpenStack official website, “Openstack.” https://www.openstack.org/.
    [6] Open vSwitch official website, “Open vswitch with dpdk.” https://docs.openvswitch.org/en/latest/intro/install/dpdk/.
    [7] Intel, “Open vswitch with dpdk overview.” https://www.intel.com/content/www/us/en/developer/articles/technical/open-vswitch-with-dpdk-overview.html.
    [8] J. C. Mogul and K. K. Ramakrishnan, “Eliminating receive livelock in an interrupt-driven kernel,” ACM Transactions on Computer Systems, vol. 15, no. 3, pp. 217–252, 1997.
    [9] K. Salah, “To coalesce or not to coalesce,” AEU - International Journal of Electronics and Communications, vol. 61, no. 4, pp. 215–225, 2007.
    [10] B. Harris and N. Altiparmak, “When poll is more energy efficient than interrupt,” in Proceedings of the 14th ACM Workshop on Hot Topics in Storage and File Systems, HotStorage ’22, (New York, NY, USA), p. 59–64, Association for Computing Machinery, 2022.
    [11] K. Salah, K. El-Badawi, and F. Haidari, “Performance analysis and comparison of interrupt-handling schemes in gigabit networks,” Computer Communications, vol. 30, no. 17, pp. 3425–3441, 2007. Special Issue Concurrent Multipath Transport.
    [12] C. Dovrolis, B. Thayer, and P. Ramanathan, “Hip: Hybrid interrupt-polling for the network interface,” SIGOPS Oper. Syst. Rev., vol. 35, p. 50–60, oct 2001.
    [13] J. H. Salim, R. Olsson, and A. Kuznetsov, “Beyond softnet,” in 5th Annual Linux Showcase & Conference (ALS 01), 2001.
    [14] DPDK official website, “Data plane development kit (dpdk).” https://www.dpdk.org/.
    [15] G. Lee, S. Shin, and J. Jeong, “Efficient hybrid polling for ultra-low latency storage devices,” Journal of Systems Architecture, vol. 122, p. 102338, 2022.
    [16] D. I. Shin, Y. J. Yu, H. S. Kim, J. W. Choi, D. Y. Jung, and H. Y. Yeom, “Dynamic interval polling and pipelined post I/O processing for Low-Latency storage class memory,” in 5th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage 13), (San Jose, CA), USENIX Association, June 2013.
    [17] A. Gordon, N. Har’El, A. Landau, M. Ben-Yehuda, and A. Traeger, “Towards exitless and efficient paravirtual i/o,” in Proceedings of the 5th Annual International Systems and Storage Conference, SYSTOR ’12, (New York, NY, USA), Association for Computing Machinery, 2012.
    [18] A. Landau, M. Ben-Yehuda, and A. Gordon, “SplitX: Split Guest/Hypervisor execution on Multi-Core,” in 3rd Workshop on I/O Virtualization (WIOV 11), (Portland, OR), USENIX Association, June 20
    [19] H. Park, J. Seong, M. Lee, K. Lee, and C.-H. Hong, “Netap: Adaptive polling technique for network packet processing in virtualized environments,” Applied Sciences, vol. 10, no. 15, 2020.
    [20] S. Hajnoczi, “Applying polling techniques to qemu,” in KVM Forum 2017, pp. 25–27, 2017.
    [21] G. Lettieri, V. Maffione, and L. Rizzo, “A study of i/o performance of virtual machines,” The Computer Journal, vol. 61, no. 6, pp. 808–831, 2017.
    [22] M. Faltelli, G. Belocchi, F. Quaglia, S. Pontarelli, and G. Bianchi, “Metronome: Adaptive and precise intermittent packet retrieval in dpdk,” in Proceedings of the 16th International Conference on Emerging Networking EXperiments and Technologies, CoNEXT ’20, (New York, NY, USA), p. 406–420, Association for Computing Machinery, 2020.
    [23] M. Wu, Q. Chen, and J. Wang, “Toward low cpu usage and efficient dpdk communication in a cluster,” J. Supercomput., vol. 78, p. 1852–1884, feb 2022.
    [24] tcpdump official website, “tcpdump.” https://www.tcpdump.org/.
    [25] KVM official website, “Kernel virtual machine (kvm).” https://www.linux-kvm.org/.
    [26] QEMU official website, “Qemu.” https://www.qemu.org/.
    [27] libvirt official website, “libvirt.” https://libvirt.org/.
    [28] E. P. Mart´ın, “Deep dive into virtio-networking and vhost-net.” https://www.redhat.com/en/blog/deep-dive-virtio-networking-and-vhost-net, 2019.
    [29] Virtual Open Systems, “Vhost-user feature for qemu.” http://www.virtualopensystems.com/en/solutions/guides/snabbswitch-qemu/.
    [30] A. M. Z. Eugenio P´erez Mart´ın, “A journey to the vhost-users realm.” https://www.redhat.com/en/blog/journey-vhost-users-realm, 2019.
    [31] Linux Foundation, “Bridge.” https://wiki.linuxfoundation.org/networking/bridge.
    [32] DPDK official website, “Programmer’s guide: Poll mode driver.” https://doc.dpdk.org/guides/prog_guide/poll_mode_drv.html.
    [33] DPDK official website, “One-shot rx interrupt tests.” https://doc.dpdk.org/dts/test_plans/interrupt_pmd_test_plan.html.
    [34] P. Emmerich, S. Gallenm¨uller, D. Raumer, F. Wohlfart, and G. Carle, “Moongen: A scriptable high-speed packet generator,” in Proceedings of the 2015 Internet Measurement Conference, IMC ’15, (New York, NY, USA), p. 275–287, Association for Computing Machinery, 2015.
    [35] P. Emmerich, S. Gallenm¨uller, G. Antichi, A. W. Moore, and G. Carle, “Mind the gap - a comparison of software packet generators,” in 2017 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS), pp. 191–203, 2017.
    [36] A. Kopytov, “Sysbench manual,” MySQL AB, pp. 2–3, 2012.

    無法下載圖示 校內:2027-08-21公開
    校外:2027-08-21公開
    電子論文尚未授權公開,紙本請查館藏目錄
    QR CODE