From 5a69a7c75a6e38843ec2a1c4347244d414ae7110 Mon Sep 17 00:00:00 2001 From: Guoqi Xie Date: Sun, 29 Dec 2024 11:10:29 +0800 Subject: [PATCH] Doc: update README.md Move test suite to a new file, and add wechat account in readme. Signed-off-by: Guoqi Xie --- README.md | 45 ++++++---------------------------- zvm_doc/5_Run_on_ARM64_FVP.rst | 2 ++ zvm_doc/6_Test_on_RK3568.rst | 40 ++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 37 deletions(-) create mode 100644 zvm_doc/6_Test_on_RK3568.rst diff --git a/README.md b/README.md index 15aa0d7c8..cad10f694 100644 --- a/README.md +++ b/README.md @@ -54,55 +54,26 @@ ZVM目前支持兼容ARMv8架构的处理器芯片,包括: 环境搭建部分主要介绍Linux/Ubuntu主机开发环境的配置,包括主机各类环境变量的配置与升级、zephyrproject SDK的配置、环境验证、zvm仓库的初始化以及简单zvm sample的构建与测试等,方便用户快速入手搭建开发环境,详细内容见如下链接:[Environment_Configuration:https://gitee.com/openeuler/zvm/blob/master/zvm_doc/2_Environment_Configuration.rst](https://gitee.com/openeuler/zvm/blob/master/zvm_doc/2_Environment_Configuration.rst) -#### 3. ZVM运行与测试: +#### 3. 运行ZVM: 我们提供了ZVM在QEMU和RK353568板卡进行验证的指南,可以在上面运行多个虚拟机并进行虚拟化功能测试,下面是ZVM在各个平台上运行的详细教程: - [ZVM on QEMU:https://gitee.com/openeuler/zvm/blob/master/zvm_doc/3_Run_on_ARM64_QEMU.rst](https://gitee.com/openeuler/zvm/blob/master/zvm_doc/3_Run_on_ARM64_QEMU.rst) - [ZVM on RK3568:https://gitee.com/openeuler/zvm/blob/master/zvm_doc/4_Run_on_ROC_RK3568_PC.rst](https://gitee.com/openeuler/zvm/blob/master/zvm_doc/4_Run_on_ROC_RK3568_PC.rst) +- [ZVM on FVP:https://gitee.com/openeuler/zvm/blob/master/zvm_doc/5_Run_on_ARM64_FVP.rst](https://gitee.com/openeuler/zvm/blob/master/zvm_doc/5_Run_on_ARM64_FVP.rst) -## ZVM性能测试 +## ZVM性能测试结果 -ZVM的性能测试在瑞芯微RK3568芯片上进行(开发板采用ROC-RK3568-PC),RK3568芯片是一款代表性的基于ARMv8.2架构(采用Cortex A55)的4核CPU国产SoC芯片。本次性能测试主要对比虚拟机操作系统(VM)在**裸板**(即RK3568裸板)和**ZVM**(即ZVM on RK3568)上的各种性能指标,包括系统线程的调度时延、中断处理时延、内核对象的操作时间、系统吞吐量等。本次测试采用的VM为Zephyr RTOS(3.7 LTS)和Debian(Linux 5.10内核),使用的测试集包括:1)Zephyr Latency Measure测试集;2)Debian Cyclictest测试集;3)Zephyr Sys kernel测试集;4)Debian Unixbench测试集。前两个测试集关注VM的系统延迟,后两个测试集关注VM的整体性能,具体说明见下面测试中描述。 +ZVM的性能测试在瑞芯微RK3568芯片上进行(开发板采用ROC-RK3568-PC),RK3568芯片是一款代表性的基于ARMv8.2架构(采用Cortex A55)的4核CPU国产SoC芯片。本次性能测试主要对比虚拟机操作系统(VM)在**裸板**(即RK3568裸板)和**ZVM**(即ZVM on RK3568)上的各种性能指标,包括系统线程的调度时延、中断处理时延、内核对象的操作时间、系统吞吐量等。本次测试采用的VM为Zephyr RTOS(3.7 LTS)和Debian(Linux 5.10内核),使用的测试集包括:1)Zephyr Latency Measure测试集;2)Debian Cyclictest测试集;3)Zephyr Sys kernel测试集;4)Debian Unixbench测试集。前两个测试集关注VM的系统延迟,后两个测试集关注VM的整体性能,具体说明见下面测试链接中描述。 -#### 测试1:**Zephyr RTOS的延迟测试** +- [Test ZVM on RK3568:https://gitee.com/openeuler/zvm/blob/master/zvm_doc/6_Test_on_RK3568.rst](https://gitee.com/openeuler/zvm/blob/master/zvm_doc/6_Test_on_RK3568.rst) -我们分别在裸板和ZVM上运行Zephry RTOS,并在ZephyrRTOS中运行Zephyr Latency measure测试集,该基准测试测量选定内核功能的平均延迟,如线程上下文切换、中断处理、信号量收发的延迟,测试项的细节见:[Zephyr Latency measure](https://github.com/zephyrproject-rtos/zephyr/tree/main/tests/benchmarks/latency\_measure)中列出的基准项。 -

-

   Zephyr中运行Latency Measure测试结果 - -测试结果如上图所示,横坐标代表各个基准项目的时延(单位为ns),纵坐标为各个基准测试项。结果显示,相比于裸机,Zephyr RTOS运行在ZVM上时,“Context switch between preemptive thread”测试项的延迟增加了7.1%, “Abort thread”测试项增加了2.4%,所有其他测试项延迟增幅均低于1%,且大部分是0增长。整体结果表明,ZVM对Zephyr RTOS的各项基准测试延迟的影响很小。 - -#### 测试2:**Debian的延迟测试** - -我们分别在裸板和ZVM上运行Debian,并在Debian中运行Cyclictest测试集,Cyclictest 是一个用于测量 Debian系统实时性能的工具,尤其是测量系统的**中断延迟**和**调度延迟**。它通常用于测试系统在实时场景下的响应能力,以确保系统在关键任务中具备足够的实时性。见[Cyclictest](https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/test-design)详细描述。在测试过程中,我们还通过stress工具逐步增加Debian的负载,依次将CPU密集型线程数量从1个增加到8个,每次Cyclictest测试的运行时间为30分钟,累计运行时间4小时。我们同时使用stress生成固定数量的IO和内存密集型任务,以模拟真实部署场景。 - -

-

   Debian中运行Cyclictest测试结果 - -测试结果如上图所示,横坐标为CPU密集型线程数量,纵坐标为具体的延迟数据指标(单位为us)。我们选择1,2,4,8等四个CPU密集型任务数量作为采样点。结果显示,相比于裸机,Debian运行在ZVM上时,最大延迟增加了6.2%,最小延迟增加了2.4%。随着系统负载的增加,Debian在ZVM运行的Cyclictest测试结果逐渐逼近裸机。具体原因是负载较轻情况下ZVM本身内核的线程存在资源竞争会会对Debian线程有一定影响,而当负载到达一定临界值时,裸机与ZVM的资源竞争都满量。 - -#### 测试3:**Zephyr RTOS开销测试** - -我们分别在裸板和ZVM上运行Zephyr RTOS,并在Zephyr RTOS中运行Zephyr sys kernel基准测试集,其主要评估Sem、LIFO、FIFO、堆栈和Memslab等内核对象的操作效率,以体现系统开销。见[Zephyr sys kernel](https://github.com/zephyrproject-rtos/zephyr/tree/main/tests/benchmarks/sys_kernel)详细描述。 - -

-

   Zephyr中运行Sys kernel测试结果 - -测试结果如上图所示,横坐标为各项基准测试项目,纵坐标为相关执行项的时间(单位为ns)。测试结果显示,相比于裸机平台,ZVM上运行Zephy RTOS的Semaphore 3测试项的损耗最大(8.7%),LIFO 3项的性能损耗为5.4%,其余损耗均在3%以内,且FIFO/Stack/Memslab等多个测试项的损耗为0。相比于裸机,ZVM引入的平均开销损耗仅为1.4%,说明ZVM上运行Zephyr RTOS的性能达到了裸机平台的98.6%。 - -#### 测试4:**Debian开销测试** - -我们分别在裸板和ZVM上运行Debian,并在Debian中运行UnixBench基准测试集。UnixBench套件包含多项测试,每项测试评估Debian性能的不同方面,并提供相应的评分。最终,这些评分会被加权并平均,生成一个综合分数作为系统整体性能的评估值,即系统基准指数分数(System Benchmarks Index Score),详细描述见[UnixBench](https://github.com/kdlucas/byte-unixbench)。 - -

-

   Debian中运行Unixbench测试结果 - -测试结果如上图所示,横坐标为各项基准测试项,纵坐标各个基准项的评分(Score数值)。测试结果显示,相比于裸机平台,ZVM上运行Debian的Process Creation测试项所引入的性能损耗最大(5.7%),其余项的性能损耗都在2%以内。ZVM和裸机对比,基准指数分数上的开销损耗仅为0.7%。说明ZVM上运行Debian的性能达到了裸机平台的99.3%,基本可以忽略不计。 +## 交流与反馈 +如有相关问题可以加入ZVM开发者群进行交流 -## 交流与反馈 +* 技术交流微信群:可以添加如下微信账号进群,xgqman 、 Char_lie027; * 技术交流QQ群:如有相关问题可以加入ZVM开发者群进行交流; diff --git a/zvm_doc/5_Run_on_ARM64_FVP.rst b/zvm_doc/5_Run_on_ARM64_FVP.rst index f297834b8..bdaab5ae2 100644 --- a/zvm_doc/5_Run_on_ARM64_FVP.rst +++ b/zvm_doc/5_Run_on_ARM64_FVP.rst @@ -82,3 +82,5 @@ 等待弹出zvm_host#的窗口即可。 `Prev>> 在RK3568上运行ZVM `__ + +`Next>> 在RK3568上测试ZVM性能 `__ diff --git a/zvm_doc/6_Test_on_RK3568.rst b/zvm_doc/6_Test_on_RK3568.rst new file mode 100644 index 000000000..cd51e1c7a --- /dev/null +++ b/zvm_doc/6_Test_on_RK3568.rst @@ -0,0 +1,40 @@ +在ROC_RK3568_PC上测试ZVM性能 +====================== + +#### 测试1:**Zephyr RTOS的延迟测试** + +我们分别在裸板和ZVM上运行Zephry RTOS,并在ZephyrRTOS中运行Zephyr Latency measure测试集,该基准测试测量选定内核功能的平均延迟,如线程上下文切换、中断处理、信号量收发的延迟,测试项的细节见:[Zephyr Latency measure](https://github.com/zephyrproject-rtos/zephyr/tree/main/tests/benchmarks/latency\_measure)中列出的基准项。 + +

+

   Zephyr中运行Latency Measure测试结果 + +测试结果如上图所示,横坐标代表各个基准项目的时延(单位为ns),纵坐标为各个基准测试项。结果显示,相比于裸机,Zephyr RTOS运行在ZVM上时,“Context switch between preemptive thread”测试项的延迟增加了7.1%, “Abort thread”测试项增加了2.4%,所有其他测试项延迟增幅均低于1%,且大部分是0增长。整体结果表明,ZVM对Zephyr RTOS的各项基准测试延迟的影响很小。 + +#### 测试2:**Debian的延迟测试** + +我们分别在裸板和ZVM上运行Debian,并在Debian中运行Cyclictest测试集,Cyclictest 是一个用于测量 Debian系统实时性能的工具,尤其是测量系统的**中断延迟**和**调度延迟**。它通常用于测试系统在实时场景下的响应能力,以确保系统在关键任务中具备足够的实时性。见[Cyclictest](https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/test-design)详细描述。在测试过程中,我们还通过stress工具逐步增加Debian的负载,依次将CPU密集型线程数量从1个增加到8个,每次Cyclictest测试的运行时间为30分钟,累计运行时间4小时。我们同时使用stress生成固定数量的IO和内存密集型任务,以模拟真实部署场景。 + +

+

   Debian中运行Cyclictest测试结果 + +测试结果如上图所示,横坐标为CPU密集型线程数量,纵坐标为具体的延迟数据指标(单位为us)。我们选择1,2,4,8等四个CPU密集型任务数量作为采样点。结果显示,相比于裸机,Debian运行在ZVM上时,最大延迟增加了6.2%,最小延迟增加了2.4%。随着系统负载的增加,Debian在ZVM运行的Cyclictest测试结果逐渐逼近裸机。具体原因是负载较轻情况下ZVM本身内核的线程存在资源竞争会会对Debian线程有一定影响,而当负载到达一定临界值时,裸机与ZVM的资源竞争都满量。 + +#### 测试3:**Zephyr RTOS开销测试** + +我们分别在裸板和ZVM上运行Zephyr RTOS,并在Zephyr RTOS中运行Zephyr sys kernel基准测试集,其主要评估Sem、LIFO、FIFO、堆栈和Memslab等内核对象的操作效率,以体现系统开销。见[Zephyr sys kernel](https://github.com/zephyrproject-rtos/zephyr/tree/main/tests/benchmarks/sys_kernel)详细描述。 + +

+

   Zephyr中运行Sys kernel测试结果 + +测试结果如上图所示,横坐标为各项基准测试项目,纵坐标为相关执行项的时间(单位为ns)。测试结果显示,相比于裸机平台,ZVM上运行Zephy RTOS的Semaphore 3测试项的损耗最大(8.7%),LIFO 3项的性能损耗为5.4%,其余损耗均在3%以内,且FIFO/Stack/Memslab等多个测试项的损耗为0。相比于裸机,ZVM引入的平均开销损耗仅为1.4%,说明ZVM上运行Zephyr RTOS的性能达到了裸机平台的98.6%。 + +#### 测试4:**Debian开销测试** + +我们分别在裸板和ZVM上运行Debian,并在Debian中运行UnixBench基准测试集。UnixBench套件包含多项测试,每项测试评估Debian性能的不同方面,并提供相应的评分。最终,这些评分会被加权并平均,生成一个综合分数作为系统整体性能的评估值,即系统基准指数分数(System Benchmarks Index Score),详细描述见[UnixBench](https://github.com/kdlucas/byte-unixbench)。 + +

+

   Debian中运行Unixbench测试结果 + +测试结果如上图所示,横坐标为各项基准测试项,纵坐标各个基准项的评分(Score数值)。测试结果显示,相比于裸机平台,ZVM上运行Debian的Process Creation测试项所引入的性能损耗最大(5.7%),其余项的性能损耗都在2%以内。ZVM和裸机对比,基准指数分数上的开销损耗仅为0.7%。说明ZVM上运行Debian的性能达到了裸机平台的99.3%,基本可以忽略不计。 + +`Prev>> 在ARM FVP上运行ZVM `__ \ No newline at end of file -- Gitee