CN106656553B - 基于nfv设备的系统性能检测及调优方法 - Google Patents

基于nfv设备的系统性能检测及调优方法 Download PDF

Info

Publication number
CN106656553B
CN106656553B CN201610885210.2A CN201610885210A CN106656553B CN 106656553 B CN106656553 B CN 106656553B CN 201610885210 A CN201610885210 A CN 201610885210A CN 106656553 B CN106656553 B CN 106656553B
Authority
CN
China
Prior art keywords
memory
performance
cpu
tuning method
system performance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610885210.2A
Other languages
English (en)
Other versions
CN106656553A (zh
Inventor
王猛
胡森标
逯利军
钱培专
李晏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING CERTUSNET INFORMATION TECHNOLOGY CO., LTD.
Original Assignee
CERTUSNET CORP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CERTUSNET CORP filed Critical CERTUSNET CORP
Priority to CN201610885210.2A priority Critical patent/CN106656553B/zh
Publication of CN106656553A publication Critical patent/CN106656553A/zh
Application granted granted Critical
Publication of CN106656553B publication Critical patent/CN106656553B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种基于NFV设备的系统性能检测及调优方法,其中包括如下步骤:(1)对系统配置进行检测;(2)设定性能参数;(3)自动采样与系统带宽和延迟相关的性能事件;(4)根据采样结果进行性能分析及优化。采用该方法,通过软件方式优化系统硬件和软件的配置策略,避免或突破性能瓶颈限制,并指明了系统对性能有影响的检测点,提高了对性能瓶颈的定位效率;有针对地配置一系列性能参数,提高了系统部署的自动化程度;根据设备实际运行的反馈结果,量化分析系统运行的性能特征,并结合量化结果找出环境配置的不合理因数和代码缺陷,进一步优化系统性能;提供图形化操作界面,方便软件开发人员对缺陷代码的定位,具有广泛的应用范围。

Description

基于NFV设备的系统性能检测及调优方法
技术领域
本发明涉及网络功能虚拟化技术领域,尤其涉及通信电子计算机软件网络功能虚拟化技术领域,具体是指一种基于NFV(Network Function Virtualization,网络功能虚拟化)设备的系统性能检测及调优方法。
背景技术
随着虚拟化技术的发展以及基于虚拟化技术的应用需求的增长;目前越来越多网络设备正在从传统的专用设备逐步迁移到基于x86-64架构的通用Linux服务器上。网络带宽和系统延迟是网络设备的主要性能指标中比较特出的两个性能指标。理论上,带宽越大,延迟越小;反之,较小的延时有助于提升带宽。
在现有硬件和软件技术条件,比如硬件虚拟化方面主要有Intel VT(Virtualization Technology,虚拟化技术)等CPU(Central Processing Unit,中央处理器)虚拟化技术;软件虚拟化方面主要有KVM(Kernel-based Virtual Machine,开源虚拟化模块)等Hypervisor(一种运行在物理服务器和操作系统之间的中间软件层)虚拟化技术。虽然这些虚拟化技术能够使用户充分地使用系统资源以及灵活地部署相关网络业务,但是在实际使用过程中由于使用策略不当而引发不能够满足业务需求的性能问题。这些硬件和软件虚拟化技术提供了功能及机制,却没有在实际使用中提供完整且具有针对性的业务部署和性能优化等方面的解决方案。在现有的基于x86-64硬件构架和Linux KVM软件架构的环境下,网络功能虚拟化设备面临着网络带宽和系统延迟的困境,主要技术瓶颈反映在内存子系统方面,其中包括:本地化内存访问、内存页表映射、CPU高速缓存命中率、主存访问延迟等以及针对上述瓶颈的调优。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种能够实现提供完整且具有针对性的业务部署和性能优化的基于NFV设备的系统性能检测及调优方法。
为了实现上述目的,本发明的具有如下构成:
该基于NFV设备的系统性能检测及调优方法,包括如下步骤:
(1)对系统配置进行检测;
(2)设定系统性能参数;
(3)自动采样与系统带宽和延迟相关的性能事件;
(4)根据采样结果进行性能分析及优化。
较佳地,所述的步骤(1)和步骤(2)之间还包括如下步骤:
(1-1)检测BIOS(Basic Input/Output System,基本输入输出系统)预配置参数并修改;
(1-2)检测CPU状态并配置;
(1-3)检测内存子系统并设定内存子系统相关性能参数;
(1-4)检测网络设备并设定网络设备相关性能参数;
(1-5)检测宿主机操作系统和内核参数并设定宿主机相关性能参数;
(1-6)设定虚拟机参数;
(1-7)设定客户机操作系统和内核参数;
(1-8)设定客户机网络设备参数。
更佳地,所述的步骤(1-1)包括如下步骤:
(1-1-1)检测BIOS预配置参数;
(1-1-2)判断所述的BIOS预配置参数与期望是否一致,如果是,则继续步骤(1-2),否则继续步骤(1-1-3);
(1-1-3)判断所述的BIOS预配置参数是否可以在线修改,如果是,则在线修改BIOS预配置参数并继续步骤(1-2),否则继续步骤(1-1-4);
(1-1-4)重启系统并在系统引导阶段进入BIOS环境,修改所述的BIOS预配置参数,继续步骤(1-1-1)。
更进一步地,所述的BIOS预配置参数包括处理器C3的状态、处理器C6的状态、超线程、英特尔增强、英特尔虚拟化、MLC远程控制、MLC空间预存器、DCU指令预存器、DCA、CPU功耗和性能策略、英特尔睿频加速和内存的NUMA优化项。
更进一步地,所述的步骤(1-2)包括如下步骤:
(1-2-1)读取所述的CPU状态并检测CPU参数指标;
(1-2-2)判断所述的CPU状态与期望是否一致,如果是,则继续步骤(1-2-6),否则继续步骤(1-2-3);
(1-2-3)判断BIOS配置是否正确,如果是,则继续步骤(1-2-4),否则继续步骤(1-1-3);
(1-2-4)判断CPU型号是否正确,如果是,则继续步骤(1-2-6),否则继续步骤(1-2-5);
(1-2-5)更换CPU或更换服务器硬件,继续步骤(1-1-1);
(1-2-6)记录并保存CPU相关特征参数。
更进一步地,所述的CPU参数指标包括CPU物理ID、Core ID、CPU逻辑核数、L1/L2/L3高速缓存大小、ITLB/DTLB/STLB(TLB:Translation lookaside buffer,即旁路转换缓冲)条目数、超线程、电源管理模式,QPI(QuickPath Interconnect,公共系统接口)状态,缓存硬件预取和LLC(Logical Link Control,逻辑链路控制子层)配置方式。
更进一步地,所述的步骤(1-3)包括如下步骤:
(1-3-1)检测DIMM(Dual-Inline-Memory-Modules,双列直插式存储模块)内存布局,并将所述的DIMM内存布局调整为最大带宽配置模式;
(1-3-2)判断所述的DIMM内存布局是否满足NUMA(Non Uniform Memory Access,非统一内存访问)架构,如果是,则继续步骤(1-3-4),否则继续步骤(1-3-3);
(1-3-3)手工调整所述的DIMM内存布局,继续步骤(1-1-1);
(1-3-4)检查并保存内存相关参数。
更进一步地,所述的内存布局包括内存通道数、DIMM插槽布局、内存条装配、系统物理内存容量、单根内存条容量、NUMA内存节点本地化访问、工作频率和存储容量。
更进一步地,所述的步骤(1-4)还包括如下步骤:
(1-4-1)检测网卡配置情况;
(1-4-2)判断网卡布局是否满足NUMA架构,如果是,则继续步骤(1-4-4),否则继续步骤(1-4-3);
(1-4-3)手工调整所述的网卡内存布局,继续步骤(1-1-1);
(1-4-4)检测并保存网卡相关参数。
更进一步地,所述的网卡布局包括网卡型号、网卡装配物理位置PCIe总线插槽和NUMA网卡本地化访问。
更佳地,所述的步骤(1-5)包括如下步骤:
(1-5-1)检测并设定内核参数;
(1-5-2)检测并设定所需内核模块的加载情况;
(1-5-3)检测并设定巨页分配情况;
(1-5-4)检测并设定系统交换分区状态。
更进一步地,所述的内存巨页分配情况包括巨页页面大小、巨页分配数量、巨页在各个NUMA节点分配情况和巨页物理地址空间连续性。
更佳地,所述的步骤(1-6)包括如下步骤:
(1-6-1)检测并设定预留客户机系统内存;
(1-6-2)检测并设定虚拟CPU亲和性;
(1-6-3)检测并设定绑定虚拟网卡。
更进一步地,所述的检测并设定预留客户机系统内存,具体为:
宿主机装配同样型号的内存条且每个内存同通道仅装配单个内存条,所述的宿主机使用2MB或1GB大小的巨页为客户机分配内存。
更进一步地,所述的检测并设定虚拟CPU亲和性,具体为:
绑定多线程的任务中的线程到同一个物理处理器上不同的CPU核上,并且亲和性绑定指定线程访问相同NUMA节点下的内存和网卡。
更进一步地,所述的检测并设定绑定虚拟网卡,具体为:
使用Pass Through模式初始化客户机网卡,绑定线程仅访问相同NUMA节点下的网卡。
更佳地,所述的步骤(1-7)包括如下步骤:
(1-7-1)检测并设定客户机内存巨页分配;
(1-7-2)检测并设定客户机操作系统内核参数。
更进一步地,所述的检测并设定客户机内存巨页分配,具体为:
使用连续地址的2MB或1GB巨页为应用程序分配内存,最优性能时以减少TLB不命中率,使用的2MB或1GB巨页的数量应与CPU的DTLB条目数量一致。
更佳地,所述的步骤(1-8)包括如下步骤:
(1-8-1)检查虚拟网卡驱动程序是否正确加载;
(1-8-2)检测并设定虚拟网卡驱动程序参数配置。
较佳地,所述的步骤(3)包括如下步骤:
(3-1)鉴别CPU类型;
(3-2)确定对应采样事件;
(3-3)收集采样事件结果。
更佳地,所述的步骤(3-1)包括如下步骤:
(3-1-1)读取CPU的信息;
(3-1-2)判断所述的CPU是否为Intel处理器,如果是,则继续步骤(3-1-3),否则继续步骤(3);
(3-1-3)识别处理器微架构。
更佳地,所述的步骤(3-2)包括如下步骤:
(3-2-1)判断所述的处理器微架构,如果是Sandy Bridge微架构,则继续步骤(3-2-2),如果是Ivy Bridge微架构,则继续步骤(3-2-3),如果是其他已支持的处理器构架,则继续步骤(3-2-4),如果都不是,则继续步骤(3);
(3-2-2)确定Sandy Bridge微架构的采样事件;
(3-2-3)确定Ivy Bridge微架构的采样事件;
(3-2-4)确定其他微架构的采样事件。
更佳地,所述的步骤(3-3)包括如下步骤:
(3-3-1)运行应用程序并采样性能事件;
(3-3-2)收集采样事件结果。
较佳地,所述的步骤(4)包括如下步骤:
(4-1)导入相关文件;
(4-2)生成事件分析结果报告;
(4-3)优化系统配置;
(4-4)定位性能缺陷到具体的代码。
更佳地,所述的步骤(4-1)和步骤(4-2)之间包括如下步骤:
(4-1-1)判断所述的导入文件的类型,如果是时间采样结果,则继续步骤(4-1-2),如果是对象文件,则继续步骤(4-1-3),如果是代码源文件,则继续步骤(4-1-4),如果是依赖的库文件,则继续步骤(4-1-5);
(4-1-2)判断时间采样结果是否可以正确解析,如果是,则继续步骤(4-1-6),否则继续步骤(4-3);
(4-1-3)判断对象文件是否导入成功,如果是,则继续步骤(4-1-7),否则继续步骤(4-3);
(4-1-4)判断代码源文件是否导入成功,如果是,则继续步骤(4-1-9),否则继续步骤(4-3);
(4-1-5)判断库文件是否导入成功,如果是,则继续步骤(4-1-10),否则继续步骤(4-3);
(4-1-6)生成性能开销统计结果,继续步骤(4-1-8);
(4-1-7)生成汇编代码,继续步骤(4-1-8);
(4-1-8)定位性能开销到汇编代码级别;
(4-1-9)定位性能开销到源码级别;
(4-1-10)定位性能开销到调用的库文件函数;
(4-1-11)生成结果到可视化操作界面。
更进一步地,所述的生成性能开销统计结果,具体为:
根据对处理器的性能事件采样记录,导出处理器的循环开销,并所述的循环开销将关联到对应的源代码。
更进一步地,所述的生成汇编代码,具体为:
结合编译生成的目标文件,调用命令objdump-S-M att xxx.o生成对应的汇编文件。
更进一步地,所述的生成结果到可视化操作界面,具体为:
关联性能开销到调用的汇编指令的功能块,以功能块为单位显示出所用功能块之间的调用关系,并且以颜色深度表示每个功能块的性能开销,当用户鼠标双击选定的功能块时,可视化系统显示调用的汇编代码和源码,以函数为粒度,以函数名为标识并详细列举出事件的性能开销。
更进一步地,所述的性能开销是可排序的。
采用了该发明中的基于NFV设备的系统性能检测及调优方法,通过软件方式优化系统在硬件和软件方面的配置策略,避免或突破性能瓶颈限制,并指明了NFV设备系统对性能有影响的检测点,提高了对性能瓶颈的定位效率;有针对地自动配置一系列性能参数,提高了系统部署的自动化程度;根据设备实际运行的反馈结果,量化分析系统运行的性能特征,并结合量化结果找出环境配置的不合理因数和代码缺陷,进一步优化系统性能,从而改善网络虚拟化设备的网络带宽和系统延迟;根据采样结果自动进行性能分析,结合分析结果把CPU性能开销自动关联到相应的有缺陷的源代码,并且提供图形化操作界面,方便软件开发人员对缺陷代码的定位,具有广泛的应用范围。
附图说明
图1为本发明的基于NFV设备的系统性能检测及调优方法的软件逻辑功能框图。
图2为本发明的基于NFV设备的系统性能检测及调优方法的配置检测和参数设定的流程图。
图3为本发明的基于NFV设备的系统性能检测及调优方法的事件采样的流程图。
图4为本发明的基于NFV设备的系统性能检测及调优方法的性能调优的流程图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
在一种实施方式中,该基于NFV设备的系统性能检测及调优方法,包括如下步骤:
(1)对系统配置进行检测;
(2)设定系统性能参数;
(3)自动采样与系统带宽和延迟相关的性能事件;
(4)根据采样结果进行性能分析及优化。
在一种较佳的实施方式中,所述的步骤(1)和步骤(2)之间还包括如下步骤:
(1-1)检测BIOS预配置参数并修改;
(1-2)检测CPU状态并配置;
(1-3)检测内存子系统并设定内存子系统相关性能参数;
(1-4)检测网络设备并设定网络设备相关性能参数;
(1-5)检测宿主机操作系统和内核参数并设定宿主机相关性能参数;
(1-6)设定虚拟机参数;
(1-7)设定客户机操作系统和内核参数;
(1-8)设定客户机网络设备参数。
在一种更佳的实施方式中,所述的步骤(1-1)包括如下步骤:
(1-1-1)检测BIOS预配置参数;
(1-1-2)判断所述的BIOS预配置参数与期望是否一致,如果是,则继续步骤(1-2),否则继续步骤(1-1-3);
(1-1-3)判断所述的BIOS预配置参数是否可以在线修改,如果是,则在线修改BIOS预配置参数并继续步骤(1-2),否则继续步骤(1-1-4);
(1-1-4)重启系统并在系统引导阶段进入BIOS环境,修改所述的BIOS预配置参数,继续步骤(1-1-1)。
在一种更进一步的实施方式中,所述的BIOS预配置参数包括处理器C3的状态、处理器C6的状态、超线程、英特尔增强、英特尔虚拟化、MLC远程控制、MLC空间预存器、DCU指令预存器、DCA、CPU功耗和性能策略、英特尔睿频加速和内存的NUMA优化项。
在一种更进一步的实施方式中,所述的步骤(1-2)包括如下步骤:
(1-2-1)读取所述的CPU状态并检测CPU参数指标;
(1-2-2)判断所述的CPU状态与期望是否一致,如果是,则继续步骤(1-2-6),否则继续步骤(1-2-3);
(1-2-3)判断BIOS配置是否正确,如果是,则继续步骤(1-2-4),否则继续步骤(1-1-3);
(1-2-4)判断CPU型号是否正确,如果是,则继续步骤(1-2-6),否则继续步骤(1-2-5);
(1-2-5)更换CPU或更换服务器硬件,继续步骤(1-1-1);
(1-2-6)记录并保存CPU相关特征参数。
在一种更进一步的实施方式中,所述的CPU参数指标包括CPU物理ID、Core ID、CPU逻辑核数、L1/L2/L3高速缓存大小、ITLB/DTLB/STLB条目数、超线程、电源管理模式,QPI状态,缓存硬件预取和LLC配置方式。
在一种更进一步的实施方式中,所述的步骤(1-3)包括如下步骤:
(1-3-1)检测DIMM内存布局,并将所述的DIMM内存布局调整为最大带宽配置模式;
(1-3-2)判断所述的DIMM内存布局是否满足NUMA架构,如果是,则继续步骤(1-3-4),否则继续步骤(1-3-3);
(1-3-3)手工调整所述的DIMM内存布局,继续步骤(1-1-1);
(1-3-4)检查并保存内存相关参数。
在一种更进一步的实施方式中,所述的内存布局包括内存通道数、DIMM插槽布局、内存条装配、系统物理内存容量、单根内存条容量、NUMA内存节点本地化访问、工作频率和存储容量。
在一种更进一步的实施方式中,所述的步骤(1-4)还包括如下步骤:
(1-4-1)检测网卡配置情况;
(1-4-2)判断网卡布局是否满足NUMA架构,如果是,则继续步骤(1-4-4),否则继续步骤(1-4-3);
(1-4-3)手工调整所述的网卡内存布局,继续步骤(1-1-1);
(1-4-4)检测并保存网卡相关参数。
在一种更进一步的实施方式中,所述的网卡布局包括网卡型号、网卡装配物理位置PCIe总线插槽和NUMA网卡本地化访问。
在一种更佳的实施方式中,所述的步骤(1-5)包括如下步骤:
(1-5-1)检测并设定内核参数;
(1-5-2)检测并设定所需内核模块的加载情况;
(1-5-3)检测并设定巨页分配情况;
(1-5-4)检测并设定系统交换分区状态。
在一种更进一步的实施方式中,所述的内存巨页分配情况包括巨页页面大小、巨页分配数量、巨页在各个NUMA节点分配情况和巨页物理地址空间连续性。
在一种更佳的实施方式中,所述的步骤(1-6)包括如下步骤:
(1-6-1)检测并设定预留客户机系统内存;
(1-6-2)检测并设定虚拟CPU亲和性;
(1-6-3)检测并设定绑定虚拟网卡。
在一种更进一步的实施方式中,所述的检测并设定预留客户机系统内存,具体为:
宿主机装配同样型号的内存条且每个内存同通道仅装配单个内存条,所述的宿主机使用2MB或1GB大小的巨页为客户机分配内存。
在一种更进一步的实施方式中,所述的检测并设定虚拟CPU亲和性,具体为:
绑定多线程的任务中的线程到同一个物理处理器上不同的CPU核上,并且亲和性绑定指定线程访问相同NUMA节点下的内存和网卡。
在一种更进一步的实施方式中,所述的检测并设定绑定虚拟网卡,具体为:
使用Pass Through模式初始化客户机网卡,绑定线程仅访问相同NUMA节点下的网卡。
在一种更佳的实施方式中,所述的步骤(1-7)包括如下步骤:
(1-7-1)检测并设定客户机内存巨页分配;
(1-7-2)检测并设定客户机操作系统内核参数。
在一种更进一步的实施方式中,所述的检测并设定客户机内存巨页分配,具体为:
使用连续地址的2MB或1GB巨页为应用程序分配内存,最优性能时以减少TLB不命中率,使用的2MB或1GB巨页的数量应与CPU的DTLB条目数量一致。
在一种更佳的实施方式中,所述的步骤(1-8)包括如下步骤:
(1-8-1)检查虚拟网卡驱动程序是否正确加载;
(1-8-2)检测并设定虚拟网卡驱动程序参数配置。
在一种较佳的实施方式中,所述的步骤(3)包括如下步骤:
(3-1)鉴别CPU类型;
(3-2)确定对应采样事件;
(3-3)收集采样事件结果。
在一种更佳的实施方式中,所述的步骤(3-1)包括如下步骤:
(3-1-1)读取CPU的信息;
(3-1-2)判断所述的CPU是否为Intel处理器,如果是,则继续步骤(3-1-3),否则继续步骤(3);
(3-1-3)识别处理器微架构。
在一种更佳的实施方式中,所述的步骤(3-2)包括如下步骤:
(3-2-1)判断所述的处理器微架构,如果是Sandy Bridge微架构,则继续步骤(3-2-2),如果是Ivy Bridge微架构,则继续步骤(3-2-3),如果是其他已支持的处理器构架,则继续步骤(3-2-4),如果都不是,则继续步骤(3);
(3-2-2)确定Sandy Bridge微架构的采样事件;
(3-2-3)确定Ivy Bridge微架构的采样事件;
(3-2-4)确定其他微架构的采样事件。
在一种更佳的实施方式中,所述的步骤(3-3)包括如下步骤:
(3-3-1)运行应用程序并采样性能事件;
(3-3-2)收集采样事件结果。
在一种较佳的实施方式中,所述的步骤(4)包括如下步骤:
(4-1)导入相关文件;
(4-2)生成事件分析结果报告;
(4-3)优化系统配置;
(4-4)定位性能缺陷到具体的代码。
在一种更佳的实施方式中,所述的步骤(4-1)和步骤(4-2)之间包括如下步骤:
(4-1-1)判断所述的导入文件的类型,如果是时间采样结果,则继续步骤(4-1-2),如果是对象文件,则继续步骤(4-1-3),如果是代码源文件,则继续步骤(4-1-4),如果是依赖的库文件,则继续步骤(4-1-5);
(4-1-2)判断时间采样结果是否可以正确解析,如果是,则继续步骤(4-1-6),否则继续步骤(4-3);
(4-1-3)判断对象文件是否导入成功,如果是,则继续步骤(4-1-7),否则继续步骤(4-3);
(4-1-4)判断代码源文件是否导入成功,如果是,则继续步骤(4-1-9),否则继续步骤(4-3);
(4-1-5)判断库文件是否导入成功,如果是,则继续步骤(4-1-10),否则继续步骤(4-3);
(4-1-6)生成性能开销统计结果,继续步骤(4-1-8);
(4-1-7)生成汇编代码,继续步骤(4-1-8);
(4-1-8)定位性能开销到汇编代码级别;
(4-1-9)定位性能开销到源码级别;
(4-1-10)定位性能开销到调用的库文件函数;
(4-1-11)生成结果到可视化操作界面。
在一种更进一步的实施方式中,所述的生成性能开销统计结果,具体为:
根据对处理器的性能事件采样记录,导出处理器的循环开销,并所述的循环开销将关联到对应的源代码。
在一种更进一步的实施方式中,所述的生成汇编代码,具体为:
结合编译生成的目标文件,调用命令objdump-S-M att xxx.o生成对应的汇编文件。
在一种更进一步的实施方式中,所述的生成结果到可视化操作界面,具体为:
关联性能开销到调用的汇编指令的功能块,以功能块为单位显示出所用功能块之间的调用关系,并且以颜色深度表示每个功能块的性能开销,当用户鼠标双击选定的功能块时,可视化系统显示调用的汇编代码和源码,以函数为粒度,以函数名为标识并详细列举出事件的性能开销。
在一种更进一步的实施方式中,所述的性能开销是可排序的。
在一种具体的实施方式中,本软件根据其所实现的功能,结合图1在功能逻辑上可分成如下4个子功能模块如下:
1、配置检测
2、参数设定
3、事件采样
4、性能调优
各个子功能模块的功能及实现过程描述如下:
1、配置检测
在应用程序运行之前需要对应用程序运行所依赖的硬件和软件配置进行检测,所需检测的硬件和软件配置结合图2有如下方面:
1)基本输入输出系统
i)情况一:BIOS预配置参数与期望的一致,继续下一步
ii)情况二:BIOS预配置参数与期望的不一致
a)情况1:可在线修改,修改后,继续下一步
b)情况2:不可以在线修改,重启系统并在系统引导阶段进入BIOS环境后再修改
2)CPU状态
i)读取CPU状态,检查CPU相关辅助功能是否激活以及参数指标;包括:超线程、电源管理模式,QPI状态,缓存硬件预取,LLC配置方式:
a)情况一:与期望参数一致
b)情况二:与期望参数不一致,又分成以下情况
01)BIOS配置不正确,重新配置BIOS
02)CPU型号不正确,更换CPU或更换服务器硬件
ii)记录并保存CPU相关特征参数,继续下一步
3)内存子系统配置
i)检查DIMM内存布局情况是否满足最大带宽配置模式
ii)检查内存布局是否满足NUMA架构
iii)检查并保存内存相关参数,包括:rank,bank,工作频率和存储容量
4)网络设备配置
i)检查网卡装配情况
ii)检查网卡装配布局是否满足NUMA架构
iii)检查并记录网卡相关参数
5)宿主机操作系统和内核参数
i)检查一般内核参数
ii)检查所需内核模块加载情况
iii)检查hugepage分配情况
iv)检查系统交换分区状态
6)虚拟机配置参数
i)预留客户机系统内存
ii)虚拟CPU亲和性设定
iii)虚拟网卡绑定
17)客户机操作系统和内核参数
i)客户机内存巨页分配情况
ii)客户机操作系统内核参数
8)客户机网络设备配置参数
i)检查虚拟网卡驱动程序是否正确加载
ii)检查虚拟网卡驱动程序参数配置
2、参数设定
在应用程序所依赖的硬件和软件环境检测通过后,根据应用程序所需要达到的功能及性能方面的要求,并结合系统已具备的功能和性能特征,需要对硬件和软降的某些参数进行合理的配置和设定。结合图2这些配置和参数有如下方面:
1)BIOS参数设定
2)宿主机操作系统及内核参数设定
3)内存页表映射关系设定
4)虚拟机运行参数设定
5)客户机操作系统及内核参数设定
6)客户机网络设备驱动程序及参数设定
3、事件采样
为了验证系统配置是否合理以及检查应用程序代码缺陷等方面问题,需要在应用程序运行时,对反映CPU硬件运行状态的时间进行采样,综合采样事件的结果对应用程序的性能进行评估,根据评估的结果找出系统硬件和软件配置不合理的地方,以及对应用程序软件代码相关缺陷的定位。事件采样过程结合图3有如下方面:
1)鉴别CPU类型
2)确定对应采样事件
3)收集采样事件结果
4、性能调优
在得到事件采样结果后,结合应用程序代码及其相关依赖文件等,可以判断出系统的性能瓶颈,从而帮助开发人员找出硬件、软件环境以及应用程序本身对性能的限制。性能优化是一个持续迭代的过程,结合图4这一过程分成如下子过程:
1)导入采样事件结果和应用程序源码、可执行文件、编译过程中生成的中间文件以及所依赖的库文件等
2)生成事件分析结果报告
3)优化系统配置
4)定位性能缺陷到具体的代码
采用了该发明中的基于NFV设备的系统性能检测及调优方法,通过软件方式优化系统在硬件和软件方面的配置策略,避免或突破性能瓶颈限制,并指明了NFV设备系统对性能有影响的检测点,提高了对性能瓶颈的定位效率;有针对地自动配置一系列性能参数,提高了系统部署的自动化程度;根据设备实际运行的反馈结果,量化分析系统运行的性能特征,并结合量化结果找出环境配置的不合理因数和代码缺陷,进一步优化系统性能,从而改善网络虚拟化设备的网络带宽和系统延迟;根据采样结果自动进行性能分析,结合分析结果把CPU性能开销自动关联到相应的有缺陷的源代码,并且提供图形化操作界面,方便软件开发人员对缺陷代码的定位,具有广泛的应用范围。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (23)

1.一种基于NFV设备的系统性能检测及调优方法,其特征在于,所述的方法包括如下步骤:
(1)对系统配置进行检测;
(2)设定系统性能参数;
(3)自动采样与系统带宽和延迟相关的性能事件;
(4)根据采样结果进行性能分析及优化,包括如下步骤:
(4-1)导入相关文件;
(4-2)生成事件分析结果报告;
(4-3)优化系统配置;
(4-4)定位性能缺陷到具体的代码;
所述的步骤(4-1)和步骤(4-2)之间包括如下步骤:
(4-1-1)判断所述的导入文件的类型,如果是时间采样结果,则继续步骤(4-1-2),如果是对象文件,则继续步骤(4-1-3),如果是代码源文件,则继续步骤(4-1-4),如果是依赖的库文件,则继续步骤(4-1-5);
(4-1-2)判断时间采样结果是否可以正确解析,如果是,则继续步骤(4-1-6),否则继续步骤(4-3);
(4-1-3)判断对象文件是否导入成功,如果是,则继续步骤(4-1-7),否则继续步骤(4-3);
(4-1-4)判断代码源文件是否导入成功,如果是,则继续步骤(4-1-9),否则继续步骤(4-3);
(4-1-5)判断库文件是否导入成功,如果是,则继续步骤(4-1-10),否则继续步骤(4-3);
(4-1-6)生成性能开销统计结果,继续步骤(4-1-8);所述的生成性能开销统计结果,具体为:
根据对处理器的性能事件采样记录,导出处理器的循环开销,并所述的循环开销将关联到对应的源代码;
(4-1-7)生成汇编代码,继续步骤(4-1-8);所述的生成汇编代码,具体为:
结合编译生成的目标文件,调用命令objdump-S-M att xxx.o生成对应的汇编文件;
(4-1-8)定位性能开销到汇编代码级别;
(4-1-9)定位性能开销到源码级别;
(4-1-10)定位性能开销到调用的库文件函数;
(4-1-11)生成结果到可视化操作界面;所述的生成结果到可视化操作界面,具体为:
关联性能开销到调用的汇编指令的功能块,以功能块为单位显示出所用功能块之间的调用关系,并且以颜色深度表示每个功能块的性能开销,当用户鼠标双击选定的功能块时,可视化系统显示调用的汇编代码和源码,以函数为粒度,以函数名为标识并详细列举出事件的性能开销;其中:
所述的性能开销是可排序的。
2.根据权利要求1所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的步骤(1)和步骤(2)之间还包括如下步骤:
(1-1)检测BIOS预配置参数并修改;
(1-2)检测CPU状态并配置;
(1-3)检测内存子系统并设定内存子系统相关性能参数;
(1-4)检测网络设备并设定网络设备相关性能参数;
(1-5)检测宿主机操作系统和内核参数并设定宿主机相关性能参数;
(1-6)设定虚拟机参数;
(1-7)设定客户机操作系统和内核参数;
(1-8)设定客户机网络设备参数。
3.根据权利要求2所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的步骤(1-1)包括如下步骤:
(1-1-1)检测BIOS预配置参数;
(1-1-2)判断所述的BIOS预配置参数与期望是否一致,如果是,则继续步骤(1-2),否则继续步骤(1-1-3);
(1-1-3)判断所述的BIOS预配置参数是否可以在线修改,如果是,则在线修改BIOS预配置参数并继续步骤(1-2),否则继续步骤(1-1-4);
(1-1-4)重启系统并在系统引导阶段进入BIOS环境,修改所述的BIOS预配置参数,继续步骤(1-1-1)。
4.根据权利要求3所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的BIOS预配置参数包括处理器C3的状态、处理器C6的状态、超线程、英特尔增强、英特尔虚拟化、MLC远程控制、MLC空间预存器、DCU指令预存器、DCA、CPU功耗和性能策略、英特尔睿频加速和内存的NUMA优化项。
5.根据权利要求3所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的步骤(1-2)包括如下步骤:
(1-2-1)读取所述的CPU状态并检测CPU参数指标;
(1-2-2)判断所述的CPU状态与期望是否一致,如果是,则继续步骤(1-2-6),否则继续步骤(1-2-3);
(1-2-3)判断BIOS配置是否正确,如果是,则继续步骤(1-2-4),否则继续步骤(1-1-3);
(1-2-4)判断CPU型号是否正确,如果是,则继续步骤(1-2-6),否则继续步骤(1-2-5);
(1-2-5)更换CPU或更换服务器硬件,继续步骤(1-1-1);
(1-2-6)记录并保存CPU相关特征参数。
6.根据权利要求5所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的CPU参数指标包括CPU物理ID、Core ID、CPU逻辑核数、L1/L2/L3高速缓存大小、ITLB/DTLB/STLB条目数、超线程、电源管理模式,QPI状态,缓存硬件预取和LLC配置方式。
7.根据权利要求3所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的步骤(1-3)包括如下步骤:
(1-3-1)检测DIMM内存布局,并将所述的DIMM内存布局调整为最大带宽配置模式;
(1-3-2)判断所述的DIMM内存布局是否满足NUMA架构,如果是,则继续步骤(1-3-4),否则继续步骤(1-3-3);
(1-3-3)手工调整所述的DIMM内存布局,继续步骤(1-1-1);
(1-3-4)检查并保存内存相关参数。
8.根据权利要求7所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的内存布局包括内存通道数、DIMM插槽布局、内存条装配、系统物理内存容量、单根内存条容量、NUMA内存节点本地化访问、工作频率和存储容量。
9.根据权利要求3所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的步骤(1-4)还包括如下步骤:
(1-4-1)检测网卡配置情况;
(1-4-2)判断网卡布局是否满足NUMA架构,如果是,则继续步骤(1-4-4),否则继续步骤(1-4-3);
(1-4-3)手工调整所述的网卡内存布局,继续步骤(1-1-1);
(1-4-4)检测并保存网卡相关参数。
10.根据权利要求9所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的网卡布局包括网卡型号、网卡装配物理位置PCIe总线插槽和NUMA网卡本地化访问。
11.根据权利要求2所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的步骤(1-5)包括如下步骤:
(1-5-1)检测并设定内核参数;
(1-5-2)检测并设定所需内核模块的加载情况;
(1-5-3)检测并设定巨页分配情况;
(1-5-4)检测并设定系统交换分区状态。
12.根据权利要求11所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的内存巨页分配情况包括巨页页面大小、巨页分配数量、巨页在各个NUMA节点分配情况和巨页物理地址空间连续性。
13.根据权利要求2所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的步骤(1-6)包括如下步骤:
(1-6-1)检测并设定预留客户机系统内存;
(1-6-2)检测并设定虚拟CPU亲和性;
(1-6-3)检测并设定绑定虚拟网卡。
14.根据权利要求13所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的检测并设定预留客户机系统内存,具体为:
宿主机装配同样型号的内存条且每个内存同通道仅装配单个内存条,所述的宿主机使用2MB或1GB大小的巨页为客户机分配内存。
15.根据权利要求13所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的检测并设定虚拟CPU亲和性,具体为:
绑定多线程的任务中的线程到同一个物理处理器上不同的CPU核上,并且亲和性绑定指定线程访问相同NUMA节点下的内存和网卡。
16.根据权利要求13所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的检测并设定绑定虚拟网卡,具体为:
使用Pass Through模式初始化客户机网卡,绑定线程仅访问相同NUMA节点下的网卡。
17.根据权利要求2所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的步骤(1-7)包括如下步骤:
(1-7-1)检测并设定客户机内存巨页分配;
(1-7-2)检测并设定客户机操作系统内核参数。
18.根据权利要求17所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的检测并设定客户机内存巨页分配,具体为:
使用连续地址的2MB或1GB巨页为应用程序分配内存,最优性能时以减少TLB不命中率,使用的2MB或1GB巨页的数量应与CPU的DTLB条目数量一致。
19.根据权利要求2所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的步骤(1-8)包括如下步骤:
(1-8-1)检查虚拟网卡驱动程序是否正确加载;
(1-8-2)检测并设定虚拟网卡驱动程序参数配置。
20.根据权利要求1所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的步骤(3)包括如下步骤:
(3-1)鉴别CPU类型;
(3-2)确定对应采样事件;
(3-3)收集采样事件结果。
21.根据权利要求20所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的步骤(3-1)包括如下步骤:
(3-1-1)读取CPU的信息;
(3-1-2)判断所述的CPU是否为Intel处理器,如果是,则继续步骤(3-1-3),否则继续步骤(3);
(3-1-3)识别处理器微架构。
22.根据权利要求20所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的步骤(3-2)包括如下步骤:
(3-2-1)判断所述的处理器微架构,如果是Sandy Bridge微架构,则继续步骤(3-2-2),如果是Ivy Bridge微架构,则继续步骤(3-2-3),如果是其他已支持的处理器构架,则继续步骤(3-2-4),如果都不是,则继续步骤(3);
(3-2-2)确定Sandy Bridge微架构的采样事件;
(3-2-3)确定Ivy Bridge微架构的采样事件;
(3-2-4)确定其他微架构的采样事件。
23.根据权利要求20所述的基于NFV设备的系统性能检测及调优方法,其特征在于,所述的步骤(3-3)包括如下步骤:
(3-3-1)运行应用程序并采样性能事件;
(3-3-2)收集采样事件结果。
CN201610885210.2A 2016-10-11 2016-10-11 基于nfv设备的系统性能检测及调优方法 Active CN106656553B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610885210.2A CN106656553B (zh) 2016-10-11 2016-10-11 基于nfv设备的系统性能检测及调优方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610885210.2A CN106656553B (zh) 2016-10-11 2016-10-11 基于nfv设备的系统性能检测及调优方法

Publications (2)

Publication Number Publication Date
CN106656553A CN106656553A (zh) 2017-05-10
CN106656553B true CN106656553B (zh) 2019-11-05

Family

ID=58853878

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610885210.2A Active CN106656553B (zh) 2016-10-11 2016-10-11 基于nfv设备的系统性能检测及调优方法

Country Status (1)

Country Link
CN (1) CN106656553B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11003516B2 (en) * 2017-07-24 2021-05-11 At&T Intellectual Property I, L.P. Geographical redundancy and dynamic scaling for virtual network functions
CN109190382B (zh) * 2018-09-11 2020-04-07 网御安全技术(深圳)有限公司 一种cpu信道检测方法、智能终端及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986280A (zh) * 2010-11-29 2011-03-16 浙江大学 虚拟计算系统的自动化测试平台
CN104714849A (zh) * 2013-12-12 2015-06-17 国际商业机器公司 用于在综合工作负载环境中实现最佳性能的系统和方法
CN104850496A (zh) * 2015-05-15 2015-08-19 浪潮电子信息产业股份有限公司 一种面向低延迟应用的rhel服务器调优方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10541898B2 (en) * 2013-03-15 2020-01-21 Brian Weinberg System and method for creating, deploying, and administering distinct virtual computer networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986280A (zh) * 2010-11-29 2011-03-16 浙江大学 虚拟计算系统的自动化测试平台
CN104714849A (zh) * 2013-12-12 2015-06-17 国际商业机器公司 用于在综合工作负载环境中实现最佳性能的系统和方法
CN104850496A (zh) * 2015-05-15 2015-08-19 浪潮电子信息产业股份有限公司 一种面向低延迟应用的rhel服务器调优方法

Also Published As

Publication number Publication date
CN106656553A (zh) 2017-05-10

Similar Documents

Publication Publication Date Title
US10013298B2 (en) Enhanced dump data collection from hardware fail modes
US20170353534A1 (en) Virtual performance monitoring decoupled from hardware performance-monitoring units
CN103294557B (zh) 具有活动和非活动执行核心的多核处理器
Qin et al. Flexible and formal modeling of microprocessors with application to retargetable simulation
US20130024646A1 (en) Method and Simulator for Simulating Multiprocessor Architecture Remote Memory Access
US10277477B2 (en) Load response performance counters
CN108268282A (zh) 用以检查和存储对存储器地址是否在持久存储器中的指示的处理器、方法、系统和指令
CN104205064A (zh) 将程序事件记录事件向运行时间检测事件的变换
CN101233489A (zh) 具有多个处理器的计算机系统中的自适应进程分派
CN111709031B (zh) 一种覆盖率引导的VxWorks内核模糊测试方法
CN104704474A (zh) 用于管理的运行时间的基于硬件的运行时间检测设施
CN104169889A (zh) 在事务执行模式中的运行时间检测采样
CN104503830A (zh) 用于引导异构系统并呈现对称核视图的方法
US8533394B2 (en) Controlling simulation of a microprocessor instruction fetch unit through manipulation of instruction addresses
US7146581B2 (en) Automated repartitioning of hardware and software components in an embedded system
CN106656553B (zh) 基于nfv设备的系统性能检测及调优方法
CN104169886A (zh) 通过地址的运行时间检测间接采样
US7684971B1 (en) Method and system for improving simulation performance
CN105760638A (zh) 一种加快soc芯片仿真的方法
Nativ et al. Cost evaluation of coverage directed test generation for the IBM mainframe
Viana et al. Exploring memory hierarchy with ArchC
US7103812B1 (en) Method and apparatus for tracking memory access statistics for data sharing applications
JP2003345472A (ja) 電力プロファイリング方法及び電力プロファイリング用システム
Saeed et al. Learning based memory interference prediction for co-running applications on multi-cores
NL2029030B1 (en) Device, system and method to determine a structure of a crash log record

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Wang Meng

Inventor after: Hu Senbiao

Inventor after: Dai Lijun

Inventor after: Qian Peizhuan

Inventor after: Li Yan

Inventor before: Wang Meng

Inventor before: Dai Lijun

Inventor before: Qian Peizhuan

Inventor before: Li Yan

Inventor before: Hu Senbiao

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20191211

Address after: 100088 Haidian District, Beijing 1 West Town Road No. 6 building 801-807

Patentee after: BEIJING CERTUSNET INFORMATION TECHNOLOGY CO., LTD.

Address before: 210042, 699-22, Xuanwu Avenue, Xuanwu District, Jiangsu, Nanjing, 18

Patentee before: CERTUSNET CORP.

TR01 Transfer of patent right