节点文献
虚拟化环境下的多核NUMA架构性能优化系统CNA
CNA:a Performance Optimization System for Multi-core NUMA Architecture in Virtualized Environment
【作者】 李玲玲;
【导师】 陈文智;
【作者基本信息】 浙江大学 , 计算机应用技术, 2014, 硕士
【摘要】 随着虚拟化技术和多核NUMA架构发展和普及,基于虚拟化环境的多核NUMA架构商用服务器越来越受到广泛的重视以及使用。与此同时,业界对于虚拟化环境下的多核NUMA架构服务器的性能要求也越来越高。一方面,虚拟化环境下系统默认的调度器在NUMA架构下并不能获得很好的性能,另一方面,传统的NUMA架构因为虚拟化技术的引入变得更加复杂,现有的基于线程调度的优化算法也不能获得令人满意的性能提升。在这样的背景下,本文设计并实现了一个面向虚拟化环境多核NUMA架构的性能优化系统,该系统基于共享缓存感知和NUMA感知,通过实时监测虚拟机线程和NUMA硬件等性能信息,分析VCPU线程特征,对VCPU进行实时迁移调度,以实现系统的负载均衡,提高系统性能。本文所作的工作主要体现在以下几个方面:(1)对VCPU线程分类;本文中,根据LLC失配率对VCPU线程进行分类,并在线程更新过程中利用二重指数平滑算法类别的更新更加稳定可靠,相较于系统默认的调度器,这种对线程分类的方式更能考虑到VCPU线程的运行特征,更利于CNA系统做出更正确的调度决策。(2)提出VCPU线程到节点的绑定;在CNA_VCPU调度算法的设计中,笔者提出VCPU线程到节点的绑定。这么做一方面可以保证调度算法实现系统的负载均衡,另一方面也可以由系统自带调度器进行节点到CPU核的调度,不仅提高了调度算法的灵活性还提高了系统的调度效率。调度算法在做出调度决策时优先考虑将VCPU线程放置在当前节点上,可以降低系统VCPU线程调度的开销。(3)为每个线程引入了Home Node的概念;为每个线程引入了Home Node的概念,这样可以提高对LLC资源的共享,降低线程间对LLC竞争,提高系统性能。(4)本文设计和实施了详尽的测试方案。本文设计和实施了详尽的测试方案验证了CNA系统对虚拟机环境下多核NUMA系统有显著的性能提升。
【Abstract】 With the development and popularity of virtualization technology and multi-core NUMA architecture, the multi-core NUMA architecture commercial server based on virtualization has increasingly been widespread used. At the same time, the performance requirements of industry for virtualized environments multicore NUMA architecture servers are increasingly high. On one hand, the system’s default scheduler in the virtual environment of NUMA architecture does not get good performance, on the other hand, the traditional NUMA architecture becomes more complex due to the introduction of virtualization technology and the existing thread-based scheduling optimization algorithms can not obtain satisfactory performance.In this context, this paper designs and implements a virtualized environment for multi-core NUMA architecture to optimize system performance based on Cache-Aware and NUMA-Aware (CNA). Through real-time monitoring virtual machine threads and NUMA hardware performance, the CNA system can analysis the characteristics of VCPU thread and to achieve wiser scheduling to improve system performance.Work done in this article is mainly reflected in the following aspects:(1) VCPU thread classification;In this paper, the CNA system bases on VCPU threads’ LLC miss rate to classify them into3classes, and then we use double exponential smoothing algorithm to make the update process of class to be more stable and reliable. Compare with the system’s default scheduler, this way better take the characteristics of VCPU thread into account. In this way, the CNA system can make more accurate scheduling decisions.(2) Proposing VCPU thread to Node binding;In design of CNA_VCPU scheduling algorithm, the author proposes VCPU threads to bind Node. The reason is that this strategy can guarantee scheduling algorithm to achieve load balancing system, it can also be built by the system scheduler node to the CPU core scheduling, which not only improves the flexibility of scheduling algorithm, but also improves the scheduling efficiency. Scheduling algorithm in making scheduling decisions VCPU thread priority will be placed on the current Node, which can reduce system overhead VCPU thread scheduling.(3) For each thread, introduces the concept of Home Node;Introducing the concept of Home Node for each thread, we can increase share of LLC resources and reduce inter-thread LLC competition as well as improve system performance.(4) Designing and implementing a detailed test program. In this paper, we design and implement a comprehensive testing program to verify the CNA system to a virtual machine environment of multicore NUMA systems have a significant performance boost.
【Key words】 Multi-core NUMA; Virtualization; Performance Improvement; LLC;