(benchmark-performance)= # パフォーマンスをベンチマークするには ```{youtube} https://www.youtube.com/watch?v=z_OKwO5TskA ``` 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 特権コンテナを作成するにはコマンドに `--privileged` を追加します。 例 ```{list-table} :header-rows: 1 * - コマンド - 説明 * - `lxd.benchmark init --count 10 --privileged` - 最新の Ubuntu イメージを使用して 10 個の特権コンテナを作成する。 * - `lxd.benchmark init --count 20 --parallel 4 images:alpine/edge` - Alpine Edge イメージを使用する 20 個のコンテナを 4 つのパラレルスレッドを使用して作成する。 * - `lxd.benchmark init 2d21da400963` - フィンガープリントが `2d21da400963` のローカルイメージを使用して 1 個のコンテナを作成する。 * - `lxd.benchmark init --count 10 ubuntu` - `ubuntu` のエイリアスを設定されたイメージを使用して 10 個のコンテナを作成する。 ``` `init` アクションを使用するとコンテナを作成するが起動はせずにベンチマークを実行します。 作成したコンテナを起動するには、以下のコマンドを実行します。 lxd.benchmark start あるいは `launch` アクションを使用してコンテナを作成し起動します。 lxd.benchmark launch --count 10 このアクションでは、`--freeze` フラグを追加するとコンテナの起動直後に凍結できます。 コンテナを凍結するとプロセスは一時停止しますので、このフラグは各コンテナ内でプロセスが起動後に干渉するのを回避して純粋な起動時間を計測できます。 ### コンテナを削除する 作成したベンチマーク用のコンテナを削除するには、以下のコマンドを実行します。 lxd.benchmark delete ```{note} 新しいベンチマークを実行する前には既存のベンチマーク用コンテナを全て削除する必要があります。 ```