如何进行性能基准测试

Incus 服务器或集群的性能取决于许多不同的因素,从硬件、服务器配置、选择的存储驱动程序和网络带宽到整体使用模式。

为了找到最佳配置,你应该运行基准测试以评估不同的设置。

Incus 提供了一个基准测试工具来实现这一目的。此工具允许你初始化或启动多个容器,并测量系统创建这些容器所需的时间。如果你反复运行此工具,并使用不同的配置,则可以比较性能并评估哪种配置是理想的配置。

获取工具

如果你的安装中没有提供 incus-benchmark 工具,你可以从源代码构建它。确保你已安装 go(参见 Go),并使用以下命令安装工具

go install github.com/lxc/incus/cmd/incus-benchmark@latest

运行工具

运行 incus-benchmark [action] 以测量 Incus 设置的性能。

基准测试工具使用当前的 Incus 配置。如果你想使用不同的项目,请使用 --project 指定它。

对于所有操作,你可以指定要使用的并行线程数(默认情况下使用动态批处理大小)。你还可以选择将结果追加到 CSV 报告文件,并以某种方式标记它们。

查看 incus-benchmark help 以获取所有可用的操作和标志。

选择一个镜像

在运行基准测试之前,请选择要使用的镜像类型。

本地镜像

如果你想测量创建容器所需的时间,并忽略下载镜像所需的时间,则应该在运行基准测试工具之前将镜像复制到本地镜像存储库中。

为此,请运行类似于以下命令的命令,并在运行 incus-benchmark 时指定镜像的指纹(例如,2d21da400963

incus image copy images:ubuntu/22.04 local:

你还可以为镜像分配一个别名,并在运行 incus-benchmark 时指定该别名(例如,ubuntu

incus image copy images:ubuntu/22.04 local: --alias ubuntu
远程镜像

如果你想将下载时间包含在整体结果中,请指定一个远程镜像(例如,images:ubuntu/22.04)。incus-benchmark 使用的默认镜像是最新版本的 Ubuntu 镜像 (images:ubuntu),因此如果你想使用此镜像,则可以在运行工具时省略镜像名称。

创建和启动容器

运行以下命令以创建多个容器

incus-benchmark init --count <number> <image>

向命令中添加 --privileged 以创建特权容器。

例如

命令

描述

incus-benchmark init --count 10 --privileged

创建十个特权容器,这些容器使用最新的 Ubuntu 镜像。

incus-benchmark init --count 20 --parallel 4 images:alpine/edge

创建 20 个容器,这些容器使用 Alpine Edge 镜像,并使用四个并行线程。

incus-benchmark init 2d21da400963

创建使用指纹为 2d21da400963 的本地镜像的一个容器。

incus-benchmark init --count 10 ubuntu

创建十个使用别名为 ubuntu 的镜像的容器。

如果你使用的是 init 操作,则会创建基准测试容器,但不会启动它们。要启动你创建的容器,请运行以下命令

incus-benchmark start

或者,使用 launch 操作创建和启动容器

incus-benchmark launch --count 10 <image>

对于此操作,你可以添加 --freeze 标志以在每个容器启动后立即冻结它。冻结容器会暂停其进程,因此此标志允许你测量纯启动时间,而不会受到容器启动后运行的进程的干扰。

删除容器

要删除你创建的基准测试容器,请运行以下命令

incus-benchmark delete

注意

你必须删除所有现有的基准测试容器,才能运行新的基准测试。