パフォーマンスをベンチマークするには#
LXD サーバあるいはクラスタのパフォーマンスは、ハードウェア、サーバ設定、選択されたストレージドライバ、ネットワーク帯域幅から全体的な利用パターンに至るまでの多数の異なる因子によって変わります。
最適な設定を見つけるには、異なるセットアップを評価するためベンチマークテストを実行するほうが良いです。
LXD ではこの目的のためベンチマークツールを提供しています。 このツールを使って複数のコンテナを初期化・起動し、システムがコンテナを作成するのに必要な時間を計測できます。 異なる LXD の設定、システム設定、さらにはハードウェア構成に対して繰り返しツールを実行することで、パフォーマンスを比較し、どの設定が理想的か評価できます。
ツールを取得する#
snap をご利用の場合、ベンチマークツールは自動でインストールされます。
lxd.benchmark
で利用できます。
それ以外、 LXD をディストリビューションのパッケージマネージャからインストールしたかソースからビルドした場合は、ツールは lxd-benchmark
で利用できます。
もし存在しない場合は、 go
(バージョン 1.18 以降) がインストールされていることを確認の上、以下のコマンドでツールをインストールしてください。
go install github.com/lxc/lxd/lxd-benchmark@latest
ツールを実行する#
あなたの LXD のパフォーマンスを測定するには lxd.benchmark [action]
を実行してください。
(このコマンドはあなたが snap を使用していると想定しています。そうでない場合 lxd.benchmark
を lxd-benchmark
と読み替えてください。以下の例でも同様です)
ベンチマークは現在の LXD 設定を使用します。
別のプロジェクトを使用したい場合は、--project
で指定してください。
全てのアクションについて、使用する並列スレッド数 (デフォルトはダイナミックなバッチサイズを使用) を指定できます。 また結果を CSV のレポートファイルに追加し、一定の方法でラベル付けすることもできます。
利用可能なアクションとフラグについては lxd.benchmark help
を参照してください。
イメージを選択する#
ベンチマークを実行する前に、使用したいイメージの種別を選んでください。
- ローカルイメージ
コンテナの作成にかかる時間を計測し、イメージをダウンロードするのにかかる時間を無視したい場合は、ベンチマークツールを実行する前にイメージをローカルのイメージストアにコピーするのが良いです。
そうするには、以下のようなコマンドを実行し、
lxd.benchmark
の実行時にはイメージのフィンガープリント(例えば2d21da400963
)を指定します。lxc image copy images:ubuntu/22.04 local:
またイメージにエイリアスを割り当てて、
lxd.benchmark
の実行時にエイリアス (例えばubuntu
) を指定することもできます。lxc image copy images:ubuntu/22.04 local: --alias ubuntu
- リモートイメージ
全体の結果にダウンロード時間も含めたい場合は、リモートイメージ (例えば
images:ubuntu/22.04
) を指定します。lxd.benchmark
が使用するデフォルトのイメージは最新の Ubuntu イメージ (ubuntu:
) ですので、このイメージを使用したい場合は、ツール実行時にイメージ名を省略できます。
コンテナを作成、起動する#
指定した数のコンテナを作成するには以下のコマンドを実行します。
lxd.benchmark init --count <number> <image>
特権コンテナを作成するにはコマンドに --privileged
を追加します。
例
コマンド |
説明 |
---|---|
|
最新の Ubuntu イメージを使用して 10 個の特権コンテナを作成する。 |
|
Alpine Edge イメージを使用する 20 個のコンテナを 4 つのパラレルスレッドを使用して作成する。 |
|
フィンガープリントが |
|
|
init
アクションを使用するとコンテナを作成するが起動はせずにベンチマークを実行します。
作成したコンテナを起動するには、以下のコマンドを実行します。
lxd.benchmark start
あるいは launch
アクションを使用してコンテナを作成し起動します。
lxd.benchmark launch --count 10 <image>
このアクションでは、--freeze
フラグを追加するとコンテナの起動直後に凍結できます。
コンテナを凍結するとプロセスは一時停止しますので、このフラグは各コンテナ内でプロセスが起動後に干渉するのを回避して純粋な起動時間を計測できます。
コンテナを削除する#
作成したベンチマーク用のコンテナを削除するには、以下のコマンドを実行します。
lxd.benchmark delete
注釈
新しいベンチマークを実行する前には既存のベンチマーク用コンテナを全て削除する必要があります。