Content
starts here

|

パフォーマンスのボトルネックは、CPU使用率やメモリの使用量以外にも様々な要因があります。その他の主な要因として、ストレージI/Oのボトルネックと、アプリケーションのボトルネックがあります。ここでは、それぞれの問題点の解消法をご紹介します
- CPU/メモリ
- ストレージI/O
- アプリケーション
|
|

CPUやメモリがパフォーマンスのボトルネックとなっている場合、効果的なアプローチのひとつとして、マルチプロセッサー環境での「スケールアップ」があります。ただし、「スケールアップ」の場合、リニアにパフォーマンスが向上する適切なシステムを選択する必要があります。 |
 |
マルチプロセッサーのサーバー選択上、考慮すべき点はプロセッサー間がポイントツーポイント接続であることです。インテル® Xeon® プロセッサー
E7ファミリーは、グルーレス構成で2ソケット、4ソケット、そして8ソケット構成をサポートできるサーバー向けのマルチプロセッサー(MP)ですが、8ソケット構成時にはポイントツーポイント接続されていません。そのため、4ソケット構成まではプロセッサー数に比例したスケールアップ性能を示しますが、8ソケット構成ではプロセッサー数に比例したスケールアップ性能を発揮しません。
HP ProLiant DL980 G7は、独自開発したノードコントローラ(XNC:eXternal Node Controller)を搭載することで、8ソケット構成でそれぞれのプロセッサーがポイントツーポイント接続できるよう設計しています(図1)。インテル® Xeon® プロセッサー
E7ファミリーを2つで「Island」と呼ばれる単位で構成し、XNCにポイントツーポイント接続しています。この「Island」をXNC経由で4つ組み合わせ8ソケット構成のサーバーデザインとなっています。さらにXNC間はQPI(Quick
Path Interconnect)ではなくHP専用の高速シリアルバスで接続した結果、4ソケットに比べ1.8倍程度のスケールアップ性能が向上するようになっています。 |
図1: HP ProLiant DL980
G7のブロック図 |
 |
メインメモリのアクセスを高速化させるには、インテル® Xeon® プロセッサー
E7ファミリーに内蔵されるメモリコントローラからのメモリ帯域を全て活用するHemisphere構成にする必要があります。つまり、メモリ帯域を全て活用するためには1プロセッサー当たり8枚または16枚のRDIMM、8ソケット構成では64枚または128枚のRDIMMで構成することでメモリ帯域性能を最大限にすることができます。
また、8ソケット構成時、ローカルメモリのアクセスレイテンシーは120ナノ秒ですが、物理的に一番遠い位置となるリモートメモリのアクセスレイテンシーは330ナノ秒となります。そのためメモリアクセスレイテンシーが低いローカルメモリを優先して動作させることが必要となります。これはOSがメモリの物理的な位置を理解して動作するNUMA(Non
Uniformed Memory Access)対応することでローカルメモリを優先させる動作をすることができます(図2)。
しかし、OSがNUMA対応してもインテル® Xeon® プロセッサー E7ファミリーのマルチプロセッサー構成ではローカルメモリのデータ読み込みと同時に搭載されている全てのインテル® Xeon® プロセッサー
E7ファミリーにキャッシュスヌープを発行するため、このキャッシュスヌープが完了しなければローカルメモリからの読み込みを完了させることができません
※1。 |
図2: HP ProLiant DL980
G7のNUMA対応 |
※1:キャッシュスヌープを高速処理させるには“そのローカルメモリのデータが他のインテル® Xeon® プロセッサー
E7ファミリーのキャッシュに保持されていない”ことが前提となるためで、OSとアプリケーションがNUMA対応であることが必須になります。NUMA対応であればローカルメモリに保存されているデータを優先して動作するため、ローカルメモリのデータが別のプロセッサーに書き換えられている確率を低く抑えさえられ、キャッシュコヒーレンシー処理を短時間で完了できます。
インテル® Xeon® プロセッサー E7ファミリーには、グルーレス構成でローカルメモリの読み込み性能を向上させるDAS(Directory
Assisted Snoopy)機能があります。HP ProLiant DL980 G7では、よりキャッシュの応答を早くするために本機能を使用せず、キャッシュスヌープをインテル® Xeon® プロセッサー
E7ファミリーとポイントツーポイント接続しているXNCが応答することで完了させ、ローカルメモリの読み込み速度を高速する方式「スマートCPUキャッシング」で高速処理させています(図3)。
図3: スマートCPUキャッシング

マルチコア化やメモリの大容量化などが進み、CPU/メモリは容量や性能が大幅に向上していますが、最も一般的な外部記憶装置であるHDDは、大容量化は進んでいますがアクセスのスピードはそれに追いついていないのが現状です。この性能のギャップがストレージI/Oのボトルネックとなります。
このボトルネックを解消する方法としては、高速な外部ストレージシステムを利用することが一般的となっていますが、外部ストレージほどの容量が必要でなくサーバー単体でストレージI/Oのボトルネックを解消したい場合は、内蔵のHDDをSSD(Solid
State Drive) にするという選択があります。
更にディスクアクセス性能が求められる場合には、フラッシュメモリを搭載する半導体ストレージ「HP PCIe IOアクセラレータ」によって解決できます。HP
PCIe IOアクセラレータはPCI Expressスロットに空きがあれば搭載することができ、SAS/SATAが内部的に使用しているレガシーなSCSI/IDEプロトコルへの変換処理を介さずホスト側のドライバーミドルウェアでフラッシュメモリを直接ハンドリングすることにより、50マイクロ秒以下と従来ストレージとの比較で2〜3桁低いレイテンシを実現するほか、コンシューマ向けSSDと比較して読み込み3倍・書き込み6倍の帯域幅を誇り、IOPS性能および帯域幅を高めることも可能です。実際、IOアクセラレータのスループットは、読み込み最大700MB/秒および書き込み最大600MB/秒でSSDよりも高い性能を発揮しています(図4)。
図4: HP PCIe IOアクセラレータとSSDの比較

CPU、メモリ、ストレージI/O以外のパフォーマンスのボトルネックに、アプリケーションのボトルネックがあります。アプリケーションによっては、「スケールアップ」の場合にスレッド性能の限界に達することがあるため、その限界を超えたスレッド以上は、性能が劣化します。
Red Hat Enterprise Linux 6(RHEL6)は、スケーラビリティを高めるために、OSの中核であるカーネルのスケジューラー部分の変更を加え、マルチコア環境に最適化された新スケジューラーの「CFS(Completely
Fair Scheduler)」を採用しています。CFSは、タスクがCPUを利用してよい時間の公平性(バランス)を保つように、タスクの待ち時間をコントロールする仕組みを持つ特長があります。
また、マルチコア環境のリソースを効率よく利用する仕組みとして「cgroup(Control Groups)」やプログラムを自動並列化する「OpenMP」、仮想化機能の「KVM(Kernel-based
Virtual Machines)」が、用意されています。
cgroupは、厳密には性能を上げるための機能ではなく、性能劣化を抑える仕組みです。この仕組みは商用UNIXでは実装されていた仕組みで、HP-UXでは「HP-UX
Process Resource Manager(PRM)」にあたります。cgroupを使うことによって、マルチスレッドアプリケーションの性能劣化が起きにくいようにアプリケーションを改変することなくリソースの割り当てを行うことができます。
リソースを分割する手段のひとつに仮想化技術がありますが、サーバー仮想化時にはオーバーヘッドが生じます。cgroupでは仮想化せずに物理サーバー上のOSだけで実現します。OS上で動くアプリケーションに対して使用するリソースを指定するだけでオーバーヘッドは生じません。

インテル、レッドハット、日本HPの3社にて共同検証を行いました。この検証では、HP ProLiant DL980 G7の80コア/160スレッドまでの拡張性、HDDとHP
PCIe IOアクセラレータとの性能比較、Red Hat Enterprise Linux 6(RHEL6)の拡張性の測定を目的としています。
この検証では、オープンソースソフトウェアのOLTPベンチマークツール「sysbench」を使用し、1秒あたりのトランザクション数を測定しました。結果、40スレッドの負荷を与えた時にはHDDと比較すると約4倍の性能差という結果となりましたが、50スレッド以降は性能向上が見られませんでした。その原因は何なのでしょうか?HP
ProLiant DL980 G7は、どこまでのスケールアップ性能を発揮できるのでしょうか?
| ご覧頂いた「パフォーマンスのボトルネック解消法」の完全版は、「マルチプロセッサー環境の高速化のアプローチと留意点」というホワイトペーパーで閲覧することができます。お手数ですが、ご覧になりたい方は以下のボタンからダウンロードしてください。 |
 |
|

日本HPでHP ProLiant DL980 G7製品を担当する伊藤章一と申します。
製品に関する様々な情報をにお知らせしていきますので、よろしくお願いいたします。
|

新たにインテル® Xeon® E7
プロセッサーやSAP HANAを用いたソリューション情報を追加し、リニューアル致しました。アンケートにお答え頂いた方はパーフェクトガイドをダウンロードすることができます、ぜひご活用ください。
|
Intel、インテル、Intelロゴ、Itanium、Xeon、Xeon Insideは、アメリカ合衆国および他の国におけるインテル
コーポレーションまたはその子会社の商標または登録商標です。