TFS 2008 のスケーラビリティ テストが完了し、サーバー サイジングやハードウェア構成について最終的な推奨データを提示できる段階まで来ました。TFS 2005 の推奨構成と比較する場合は、こちらをご覧ください。

結局のところ、推奨構成を示すことはダーツの矢を投げることに似ているかもしれません。問題は、同じチームは 2 つとないことです。チームによって、使用するプロセスや使用パターンが異なり、アプリケーションの規模や組織形態も違います。平均的なユーザーがシステムに与える負荷などを見積もるとき、私たちは社内の TFS インストールの使用状況を大まかな目安とします。このような評価は完璧ではなく、時間と共に変化します。以降の詳細では、適用される前提条件をすべて明確にしていきます。

TFS 2005 のリリース時から、かなり多くの点が変わっています。

  • ハードウェアが進歩し、価格が変化した。
  • TFS に対して数多くのパフォーマンスの改善を行った。
  • ユーザーがシステムに与える平均的な負荷を再評価した。
  • さまざまな規模のチームで生成されるデータのサイズを再評価した。

最終的な結果として、ここに示す推奨構成は控え目ではありますが、以前と同程度のハードウェアでより多くのユーザーに対応できる形になりました。

推奨構成

詳しい説明に入る前に、テストした構成と結果を次の表に示します。

clip_image001

これらの構成については、いくつか注意しなければならない点があります。

  1. 構成の数が TFS 2005 の場合よりも少なくなっています。これは、現在のハードウェア市場を考えると、構成をあと 2 つ増してもあまり意味がないと判断したためです。
  2. どの構成でも、TFS 2005 での同等の構成に比べて、対応できるユーザー規模が大きくなっています。既に述べたとおり、多くのパフォーマンスの改善が行われたからです。しかも、このようなパフォーマンスの向上は、ユーザーあたりの負荷を大幅に増加した場合でも維持されることが確認されました。
  3. ハードウェア構成が TFS 2005 の場合と一致していません。残念ながら、この約 2 年間でラボのハードウェア構成が変わってしまい、表に示すハードウェアを使用する結果となりました。推奨メモリ サイズを全体に大きくしたのは、この 2 年間の経験に基づく判断です。
  4. ハイエンドの構成には、TFS プロキシを追加しています。プロキシは、TFS サーバーからのダウンロードの負荷をある程度軽減します。パフォーマンスが大きく向上するわけではありませんが、社内の大規模インストールの多くがプロキシを使用していることから、構成に追加しました。
推奨構成を導き出した方法

TFS のスケーリング能力を評価する基本的なアプローチについては、http://blogs.msdn.com/bharry/archive/2005/10/24/how-many-users-will-your-team-foundation-server-support.aspx を参照してください。この記事に示した数字は古くなっていますが、方法論は現在も有効です。

ユーザーあたりの負荷

TFS 2005 と TFS 2008 の評価における最も大きな違いは、平均的なユーザーが TFS に与える負荷の前提値が変わっている点です。この負荷は、開発部門の TFS サーバーで負荷パターンを調べ、"アクティブ" なユーザーの数で割ることによって計測しました。TFS 2005 のリリース当時には、開発部門の平均的なユーザーが 1 秒間に実行する要求の数は約 0.1 個でした (言い換えると、平均して 10 秒に 1 個の要求がピーク時に処理されていました)。この値は、この 1 年半ほどの間に大きく増加しています。その理由について確かなことはわかりませんが、要因はいくつか考えられます。

  1. 私たちの部門では、きわめてブランチ集約的な開発方法へと移行しました。個々の機能を別々のブランチで開発し、開発が完了した機能をマージします。そのため、ブランチの作成、削除、マージに伴う負荷がかなり大きくなりました。
  2. TFS 用に作成された自動ツールが増えました。TFS の利用が大きく広がり、TFS に関連するプロセスやアドオン ツールが多数開発されています。自動ツールは、ユーザーよりもはるかに大きな負荷をもたらすことが少なくありません。

結果として、各ユーザーの 1 秒あたりの要求数は、今では 0.15 となっています。この値は、TFS 2005 の容量を見積もったときよりも 50% 増加しています。つまり、TFS 2005 と同じ推奨ユーザー数を維持するためには、同じハードウェアでの TFS 2008 の処理速度を 50% 向上させる必要があるということです。

データ サイズ

もう 1 つの重要な変更は、データ量をチームの規模ごとに再評価したことです。さまざまなチームの使用状況を調査し、それぞれのデータベースの平均サイズを算出しました。その結果、いくつかのケースでは、テストに使用したデータベースのサイズが約 10 倍にまで拡大していました。この点からも、以前と同じハードウェアで同じスループットを達成するためには、TFS の処理能力を高めなければならないことがわかります。TFS 2008 で使用したデータ サイズは次のとおりです。

clip_image002

これらの値は、各規模に該当する上位のチームを基準としたものです。また、約 2 年の間に蓄積したデータを基にしています。もちろん、どのチームもそれぞれ異なっており、チームによって値は上下しますが、少なくとも推奨構成の前提条件は理解していただけると思います。

この前提条件のデータ サイズが TFS のパフォーマンスにどのように影響するのか、例を挙げてみましょう。表の Avg workspace size (平均ワークスペース サイズ) 列を見てください。これは、該当する規模のチームでユーザーが通常操作するファイルの数を表します。負荷テストでバージョン管理の "取得" 操作をシミュレートするときは、この数のファイルを取得します。つまり、3,600 人のチームでは、処理の規模が 250 人のチームの 20 倍となります。

ハードウェア

最後の大きな変更は、ハードウェア構成の変更です。その中には意図的な変更もあります。たとえば、8 プロセッサのデータ層を正式に導入することにしました。これは、マルチコア コンピュータ (特にクアッドコア) の登場により、8 プロセッサ コンピュータが途方もなく高価というほどではなくなったからです。今回のテストで使用した 8 プロセッサ コンピュータは、実際にはクアッドコアのデュアル プロセッサ コンピュータです。

既に説明したとおり、2 つの大規模構成には TFS プロキシも追加しました。これは、大規模なユーザー企業ではプロキシを使用していることが多く、社内でもプロキシを多用しているからです。実際に私たちは、同一 LAN 上であっても、特にユーザーの需要が高い場合はプロキシをセットアップしています。たとえば、社内のビルド ラボでは、数百万のファイルを含むツリー全体が 1 日に約 75 回取得されるため、固有のプロキシを使用しています。1 日にダウンロードされるファイルの総数は 300 ~ 400 万に上ると考えられます。シミュレーションでは、ユーザーの半数がこのプロキシを使用するように構成しました。ただし、このプロキシはダウンロードしか処理しないため、ユーザー負荷の半分がプロキシにかかるわけではありません。ダウンロードは負荷が比較的小さく、それ以外の負荷はすべて TFS サーバーに向かいます。

意図的ではない変更もあります。ラボ内のハードウェアが変更され、前回使用したドライブ アレイとコンピュータは別の目的に使用されていました。そこで、前回のテストで使用したものと似たコンピュータを選択しました。1 つだけ後悔している点は、もっとパフォーマンスの高いドライブ アレイを使用してテストを実施できなかったことです。SATA2 ではなく、ユーザー数 3,600 の構成には SAN を、ユーザー数 2,200 の構成には少なくとも SCSI アレイを使用するべきでした。この違いによる影響はそれほど大きくないと思われますが、より高性能の I/O システムを使用していれば、さらに高いパフォーマンスが得られ、より稼動環境に近い状況を作り出すことができたでしょう。

結論

結論として、今回の TFS 2008 のハードウェア構成では、同程度のハードウェアを使用する TFS 2005 の推奨構成よりも多くのユーザーに対応できると言えます。ここで示した推奨構成は、かなり控え目に見積もったユーザー負荷に基づいています。要求の負荷やデータ サイズなどが増加することを考慮して、TFS 2008 の見積もりでは、ユーザーあたりの負荷を約 2 倍にする必要があると思われます。

TFS 2008 は、処理速度が TFS 2005 の 2 倍以上に向上しており、非常に大きなチームに対応できます。もちろん、さらに大規模なチームでも、複数のサーバーを配置して必要なサイズに拡張することができます。

TFS 2008 のパフォーマンスに関して、皆さんの体験談を知りたい思っています。何かありましたら、ぜひお聞かせください。

Brian

投稿 : 2007 年 10 月 18 日 (木) 8:39 AM bharry

分類 : Visual Studio Team System, TFS, tsbt, tsbt-tfs

Brian Harry さんのブログ - http://blogs.msdn.com/bharry/archive/2007/10/18/tfs-2008-system-recommendations.aspx より。

この翻訳については、Brian Harry さんのご了承を得ています。