開発から運用まで、IT部門のお役に立つ情報をお届けするサイトです

DevOpsに関する基礎知識や進め方がわかる!! DevOpsポータルサイト
  • テスト高度化

<技術解説>Citrixのレスポンスが遅い…を未然に防ぐ!LoadRunnerによる負荷テストの勘所

  • #負荷テスト

2025.05.26

<技術解説>Citrixのレスポンスが遅い…を未然に防ぐ!LoadRunnerによる負荷テストの勘所

現在LoadRunnerは新製品名称に変わっていますが、本記事では旧製品名称のLoadRunnerで記載しています。

旧製品名称 新製品名称
LoadRunner Professional OpenText Professional Performance Engineering

このページでわかること

Citrix Virtual Apps and Desktops(以下、Citrix)環境の遅延を未然に防ぐには、カタログスペックを過信せず、本番稼働前に「システムの限界点」を正確に把握しておくことが不可欠です。

本記事では、Citrix独自のICAプロトコルに対応したLoadRunner Professional(以下、LoadRunner)を活用し、実効性の高い検証を行うためのノウハウを公開します。


なぜCitrixのパフォーマンスは「想定外」に低下するのか?

Citrixは非常に優れたソリューションですが、カタログスペック通りに動くかどうかは別問題です。実際の導入環境では、ネットワークやアプリの挙動が複雑に絡み合い、以下のような「想定外のパフォーマンス低下」が起きるケースがあります。

1.ログインストームによる遅延

多くの企業が直面するのが、始業時間直後などにアクセスが集中する「ログインストーム」による影響です。短時間に大量のリクエストが押し寄せることで、StoreFrontやDelivery Controllerといった管理コンポーネント、さらにはセッションを受け持つRDSサーバーの負荷が急増します。

その結果、公開デスクトップやアプリが開くまでに多大な時間がかかったり、タイムアウトエラーが起きて社員が業務を開始できないケースもあります。

2.プロファイル/PVSサーバー等のバックエンド負荷

負荷はVDA(Virtual Delivery Agent)だけでなく、プロファイルサーバーやPVSサーバー(Provisioning Services)、およびそれらを結ぶネットワーク経路にも集中します。

その結果、仮想マシンの起動に失敗したり、移動プロファイルの読み込みに時間がかかりデスクトップが表示されない、といった問題が発生します。

3.RDS(VDA)サーバーのリソース枯渇

ログイン完了後、ユーザーが業務アプリを一斉に操作することで、RDSサーバーのCPUやメモリが枯渇します。これにより、文字入力の反応遅延や画面描画のカクつき、アプリのフリーズといった現象が起き、ユーザー体験が著しく低下します。

これらの問題を未然に防ぎ、快適なCitrix環境を提供するためには、実環境に近い負荷をかけた検証が不可欠です。特に大規模環境やミッションクリティカルなシステムにおいては、本番稼働前に「机上の計算に基づく設計が、実際のサーバー環境(実機)でも正しく機能するか」を検証する負荷テストが極めて重要です。


Citrix環境の検証にLoadRunnerが選ばれる3つの理由

アシストでは、Citrix環境の負荷テストツールとしてOpenText社の「LoadRunner Professional」を採用しています。

1.「Webプロトコル」と「ICAプロトコル」の両方に対応

Citrix環境へのアクセスは、以下の2段階の通信で行われます。

  • 入り口(StoreFront)へのアクセス:Webプロトコル
  • 公開デスクトップ/アプリの操作:ICAプロトコル

JMeterなどのOSSツールは主にWebプロトコルには対応していますが、Citrix独自の画面転送プロトコルであるICAプロトコルには基本的には対応していません。その点、LoadRunnerはICAプロトコルに標準対応しているため、「StoreFrontへのログインから、公開アプリ上での業務操作まで」を一気通貫でテスト可能です。


2. コストを最適化する「期間」と「規模」に応じた柔軟なライセンス

LoadRunnerのライセンスは、システムのピーク時を想定した「テストで負荷を発生させるユーザー数」のみを対象としています。Citrixを利用する全ユーザー数で契約する必要がないため、大規模環境ほどコストを抑えられます。

さらに、利用期間についても1か月単位など、プロジェクトに合わせた短期契約が可能です。そのため、「システムのピーク時に想定されるユーザー負荷を、1ヶ月間だけ集中的に検証したい」といったスポットでのテスト要件にも柔軟に対応できます。

3. エージェントレスで実現する「Windowsリソース」リアルタイム監視

LoadRunnerは、テスト対象サーバーに特別なエージェントを導入することなく、OS標準のパフォーマンスカウンター経由でCPUやメモリ、ディスクI/Oのリソース値を取得できます。特に1台のサーバーで複数のユーザーセッションを処理するVirtual Appsでは、特定サーバーへの負荷集中が起こりやすくなります。

テスト実行中にリアルタイムでリソース状況をモニタリングできるため、ボトルネックの迅速な特定が可能です。


負荷テストを成功させるための5つの勘所

Citrix環境の導入やリプレースにおいて、稼働後のパフォーマンス不足を未然に防ぐには、実環境に近い負荷をかけた検証が不可欠です。

しかし、単にツールを動かすだけでは、本番の挙動を正確に予測することはできません。本番稼働への確かな根拠を得るために、現場で外してはならない「5つの勘所」を解説します。

1. テストの目的を明確にし、指標を言語化する

Citrix環境の負荷テストは、「なんとなく負荷をかけて様子を見る」では意味がありません。現行環境でどのような問題が起きているのか、あるいは新環境で何を防ぎたいのかを言語化するところから始めます。

例えば、現行システムで始業時間帯のログインに時間がかかっているのであれば、「次期システムでは、同規模の同時ログインが発生しても、公開デスクトップが○秒以内に開くことを確認する」といった指標を整理し、言語化します。

2. ユーザーの体感値とサーバー負荷を「両面」から評価する

目的が決まったら、「合格ライン」を数値で定義します。単一の平均値だけでなく、90パーセンタイル(全体の90%が目標値以内か)などの統計値を用いることで、ピーク時の「リアルな体感」に近い判断が可能になります。また、サーバー側のCPU使用率(継続して90%を超えない等)との両面で評価します。

3. 仮想デスクトップ特有の負荷パターンをシナリオに反映する

Citrix環境の負荷テストでは、単なるWebシステムとは異なる「Citrix特有の挙動」を再現するシナリオ設計が重要です。

「一斉ログオン(ログインストーム)」だけでなく、日中の「複合的な業務操作」や「長時間連続利用によるリソース枯渇」など、実際の利用パターンに結びついたシナリオこそが、現場ユーザーにとって意味のあるデータとなります。

4.クライアント応答時間とリソースの相関からボトルネックを特定する

「負荷をかけること」は手段であり、ゴールは「ボトルネックの特定」です。クライアント側の応答時間と、サーバー側のリソース(CPU/メモリ/ディスクI/O)をリアルタイムで重ねて分析します。
どのコンポーネントが限界を迎えているかを正確に把握することが重要です。

5.リハーサルや再テストを見越した余裕のある体制を組む

事前のPoCや、潜在的な設定不備を洗い出すための「リハーサル」、さらにはチューニング後の再テストまでを見越した、数ヶ月スパンの余裕を持った計画が成功の鍵となります。


アシストのノウハウを活かした負荷テスト支援のステップ

ここからは、アシストが実際に提供している負荷テスト支援のステップをご紹介します。

ステップ 内容 主担当
1 シナリオと評価基準の設計 ログインストーム等のシナリオ策定と、目標応答時間の定義 お客様/アシスト
2 LoadRunner環境の構築 目標負荷に見合った構築計画と、環境準備・構築 お客様/アシスト
3 テストスクリプトの作成 実際の操作手順(ログイン〜アプリ操作)の記録 アシスト
4 シナリオの作成 ユーザー数やログインペース(ランプアップ)の実行計画策定 アシスト
5 リハーサル・本番テスト 潜在的な課題を洗い出す「リハーサル」と本番テストの実行 アシスト
6 結果報告 測定データの集計と、リソース状況を踏まえたボトルネック分析 アシスト

1.テストの目的やシナリオ、評価基準の設計

まずはお客様にて、「どのような状況を再現したいか」「何をもって成功とするか」を定義します。単にアクセスするだけでなく、実際の業務に即したシナリオと、明確な評価基準を設けることが重要です。

【シナリオと評価基準の例】

シナリオ名 シナリオ内容 評価基準
1 ログインストーム 100ユーザー/分のペースでログインし、合計1000ユーザーまでログインする
・公開デスクトップを開く時間の90パーセンタイル値が40秒以下であること

・RDSサーバーのCPU使用率が継続して90%を超過しないこと
2 業務アプリ操作 A業務の操作を500ユーザー、B業務の操作を500ユーザーで30分間反復実行する
・A業務の特定操作の応答時間が5秒以下であること

・B業務の特定操作の応答時間が10秒以下であること

・RDSサーバーの空きメモリが枯渇しないこと

2.LoadRunner環境の構築

LoadRunnerは、メインの制御を行う「Controller」と、実際に負荷を生成する「Load Generator」で構成されています。Citrixの負荷テストでは画面転送の処理を行うため、一般的なWebシステムの負荷テストと比較してLoad Generator側に高いマシンスペックが求められます。

スクリプトやスペックによりますが、Load Generator 1台あたりで生成できる負荷は30〜40ユーザー程度です。そのため、目標とする同時接続数に応じて十分な台数を用意する必要があります。アシストではお客様のシナリオと過去の実績を踏まえて、最適な環境を構築します。

Controller   :全体のシナリオ実行を制御し、複数の負荷生成マシン(Load Generator)へ
        指示を出します。また、各マシンから送られてくる測定データをリアルタイム
        で集計・可視化する役割を担います。

Load Generator:Controllerからの指示を受け、実際にCitrixセッションを立ち上げて負荷を生成
        します。

例):1,000ユーザーの負荷をかける場合
余裕をもって、1台あたり30ユーザーと見積もると約34台のLoad Generatorが必要

3.テストスクリプトの作成

環境構築後、負荷テストの実行計画(シナリオ)と、個々の操作手順(スクリプト)を作成します。

LoadRunnerの機能(VuGen)を使い、StoreFrontへのログインから公開アプリの操作までを記録します。デスクトップ内の操作(ICAプロトコル)は、転送されてくる画面の絵を操作するため、画像認識やマウス操作を主体としたRPAのような記述になります。

アシストでは過去のノウハウをもとに、以下のポイントを押さえてスクリプトを作成しています。

スクリプト作成におけるポイント

操作と画面の同期    :ウィンドウが開いたことを確認してから次のクリックをする等、
             実際の画面表示に合わせて記録します。例えば、Google Chrome
             起動後に「新しいタブ」と表示された部分を画像認識する設定など
             を行います。

応答時間の測定     :測定したい箇所に「トランザクション」を設定します。これに
             より、開始から終了までの応答時間を測定できます。


ユーザー名のパラメータ化 :ログインユーザー名を「パラメータ化」し、テキスト情報で準備した
              リストから読み込む設定をします。これにより、ユーザーを変えて
              ログインする実際の負荷テストを再現できます。

4.シナリオ作成

作成した個別のスクリプト(操作手順)を組み合わせ、本番の利用状況を模した「シナリオ(実行計画)」を作成します。

下図のように、「ログイン」や「業務操作」といったスクリプトを、検証目的に合わせて配分します。さらに「1分間に何人ずつログインさせるか(ランプアップ)」といった負荷の上げ方を詳細に定義することで、始業開始時のログインストームや、日中の複合的な負荷状況を正確に再現します。

スクリプト・シナリオ例

5.リハーサル・本番テスト

準備ができたら、いきなり本番テストを行うのではなく、リハーサルの実施を強く推奨しています。

本番相当のユーザー数でリハーサルを行うと、LoadRunner側のスクリプト調整不足だけでなく、Citrix側の設定不備が見つかることが多々あります。
大規模なテストには関係部署との細かなスケジュール調整が不可欠です。本番テストを確実に有意義なものにするためにも、リハーサル段階で潜在的な問題点を出し切っておくことが極めて重要です。

6.結果報告

テスト終了後、収集したデータを分析しアシストにて報告書を作成します。LoadRunnerに付属する「Analysis」という分析ツールを使用すると、トランザクション応答時間の統計情報やサーバーリソースのグラフ表示を確認できます。「CPU使用率が高騰したタイミングで応答時間が遅延している」といった相関関係も確認可能です。

トランザクション応答時間の統計情報(報告書より)

※クリックして拡大

CPU使用率のグラフ(報告書より)

※クリックして拡大


負荷テスト実施の全体スケジュール

プロジェクト開始前には、お客様のCitrix環境でLoadRunnerが問題なく動作するかを確認するPoCを実施しています。
ライセンスの手配、環境構築、スクリプト作成、リハーサル、本番テスト(および予備日)を含めると、PoCから結果報告までは3〜4ヶ月程度かかるケースもあります。

また、負荷テストの結果、大きなボトルネックが見つかりチューニングが必要になった場合は、再テストのためにさらに期間が必要です。余裕を持ったスケジュールをご検討ください。

スケジュール例


まとめ

Citrix環境のパフォーマンスは、ユーザーの生産性に直結する重要な要素です。複雑な構成になりがちなCitrix環境だからこそ、LoadRunnerのように「Web」と「ICA」の両方に対応し、サーバーリソースまで詳細に可視化できるツールでの検証が求められます。

アシストではライセンスの提供だけでなく、豊富な実績に基づいた技術支援を提供可能です。Citrix環境のパフォーマンスに不安がある場合や、新規構築時の性能検証をご検討の際は、ぜひ一度ご相談ください。


Citirixの負荷テストに関するご相談やお問い合わせ

「Citrixの負荷テストについて相談したい」「実際に製品を見てみたい」といった方は、ぜひ無料相談会やLoadRunnerのデモンストレーションにお申し込みください。専門エンジニアが、お客様の状況に応じてご提案をいたします。


著者情報

矢野 英也

2001年入社。テストツールの紹介、サポート、技術支援を担当。年間何十件もの負荷テストを支援し、その経験を他のお客様にも伝えるべく、セミナーや技術情報配信を行っている。

月1回のゴルフと年1回の同期BBQを楽しみに日々奮闘中。昭和生まれのうま年。

関連ソリューション

  • テスト高度化

    テスト環境の構築から機能テスト、負荷テスト、セキュリティテストなどあらゆる状況でのテストを支援します。

ご不明な点はお気軽にお問い合わせください
お求めの情報は見つかりましたでしょうか?
お客様の状況に合わせて詳しい情報をお届けします。
お気軽にご相談ください。