X-RayとpgbenchでCPUのパフォーマンスを測定する | Nutanix Community
Skip to main content

本記事は2019年10月1日にGary Little氏が投稿した記事の翻訳版です。

原文はこちら

 

アプリケーションの統合度を測るためのX-Rayワークロード。

Nutanix X-RayはIO/ストレージワークロードをモデル化することができるツールとして知られていますが、CPUを多用するワークロードについてはどうでしょうか?

X-Rayは、X-Rayワーカー仮想マシン上でAnsibleスクリプトを走らせることができ、そうすることでほとんどすべてのアプリケーションを展開することが可能です。我々の目的はPostgresデータベースとそれにビルトインされたベンチマークツールであるPGBenchを利用することです。意図的に仮想マシンのメモリに収まり、IOをほとんど発生させないような非常に小さなデータベースを作成するスクリプトを作成しました。

X-rayのワークロードファイルは こちら に保存してあります。

 

pgbench向けのX-Rayインターフェイス

 

X-Rayで標準(のベンチマーク実行スクリプト)のYAMLを利用し、Postgresの仮想マシンをいくつ展開するのか、クライアント数はいくつなのか、pgbenchを走らせる際のスレッド数はいくつなのか、などのカスタムパラメーターを渡すことができます。

 

X-Rayがワークロードを実行すると、その結果がX-RayUI上に表示されます。今回はIOPSやストレージのスループットではなく、メトリックはデータベースの毎秒のトランザクション数(TXN/S)になっています。

 

Pgbenchの毎秒のトランザクション数がX-rayのUIに表示される

 

ワークロードを走らせる仮想マシン数を変更しながら、様々な試験を実行することで、毎秒のトランザクションの総計と仮想マシンあたりの値をプロットすることができました、この値はホストプラットフォームのCPUがサチってくると減少することが想定されます。

 

 

このようなCPU主体のワークロード特性を利用して、異なるハイパーバイザー間での特性、CPUタイプごとのスケジューリング特性やCPU使用率の特性を見ることができます。負荷が小さい場合には優れたパフォーマンスを示すパラメーターの組み合わせを見つけましたが、他の組み合わせでも負荷は高いものの、優れたパフォーマンスを示していました。

 

ホストのCPUのキャパシティを超える仮想マシン数になると
トランザクション数が目に見えて落ち込んでいく

 

X-RayとAnsibleを利用したこうした類の実験は非常に理にかなったものです。Postgresの毎秒のトランザクション数をX-rayにリアルタイムに返すカスタムエクスポーターを作成してくださったGV氏に感謝の意を表明します。