Jump to content
日本-日本語

HP ProLiant MPサーバー

 お問い合わせ
Content starts here

スペシャルコンテンツ 近年、ネットワークを介したビジネスやコミュニケーションが日常化したことで、企業が扱うデータは爆発的に増加しています。ITの成熟期を迎えた今日では、ビジネスをIT化するだけに留まらず、従来のITインフラの効率化や高速化が求められ、その要求を解決するための様々なアプローチが取られています。ここでは、高速化のアプローチのひとつであるマルチプロセッサー環境での「スケールアップ」について説明します。さらに、インテル、レッドハット、日本HPの3社にて実施しました共同検証を例に、その際の問題点と解決策をご紹介いたします。 インテル® Xeon® E7 プロセッサー E7ファミリー

スペシャルコンテンツ その4 インテル® Xeon® プロセッサー E7ファミリー時代のマルチプロセッサー環境での高速化のアプローチと留意点

パフォーマンスのボトルネックとなる問題点

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

  • CPU/メモリ
  • ストレージI/O
  • アプリケーション

CPU/メモリのボトルネック解消法

CPUやメモリがパフォーマンスのボトルネックとなっている場合、効果的なアプローチのひとつとして、マルチプロセッサー環境での「スケールアップ」があります。ただし、「スケールアップ」の場合、リニアにパフォーマンスが向上する適切なシステムを選択する必要があります。

CPU:ポイントツーポイント接続

HP ProLiant DL980 G7のブロック図
マルチプロセッサーのサーバー選択上、考慮すべき点はプロセッサー間がポイントツーポイント接続であることです。インテル® 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のブロック図

メモリ:キャッシュコヒーレンシー処理

HP ProLiant DL980 G7のNUMA対応
メインメモリのアクセスを高速化させるには、インテル® 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)。スマートCPUキャッシングは一般的にはスヌープフィルタリングと呼ばれています。またXNCはスマートフィルタリング機能付きノードコントローラと呼ばれています。
スマートCPUキャッシング
グルーレス構成
図3: スマートCPUキャッシング

ストレージI/Oのボトルネック解消法

マルチコア化やメモリの大容量化などが進み、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)。
HP PCIe IOアクセラレータとSSDの比較
図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」

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は、どこまでのスケールアップ性能を発揮できるのでしょうか?

続きはホワイトペーパーをダウンロードして、ご覧ください!

ご覧頂いた「パフォーマンスのボトルネック解消法」の完全版は、「マルチプロセッサー環境の高速化のアプローチと留意点」というホワイトペーパーで閲覧することができます。お手数ですが、ご覧になりたい方は以下のボタンからダウンロードしてください。 ホワイトペーパーをダウンロードする

ダウンロード

アンケートにお答え頂いた方はホワイトペーパーやパーフェクトガイドをダウンロードすることができます、ぜひご活用ください。

■セミナー資料
導入が進む80コアのモンスターマシン、その使われ方とは?
〜ITインフラ革新のための“新たな選択肢”を事例で解説〜

■ホワイトペーパー
半導体メモリアレイ、仮想化環境バッチ処理性能検証
Red Hat Enterprise Linux 6 KVMによる効率的なバッチ処理環境の構築

■パーフェクトガイド
HP ProLiantサーバー G7 マルチプロセッサー(MP)サーバー パーフェクトガイド
HP ProLiantサーバー G7のMPサーバーがITインフラの革新に向けた新しい選択肢を提供します。
ダウンロードする


お問い合わせ

ご購入前のお問い合わせ


ご購入後のお問い合わせ

オンラインサポート
製品の標準保証でご利用いただける無償のサービスです。

ショールーム

ショールーム 導入をご検討のお客様へ
業務アプリケーションの継続・標準化・開発性とシステム担当者様、システム開発者様が抱える悩み・疑問に対する解決策実体験して頂けます。

Intel、インテル、Intelロゴ、Itanium、Xeon、Xeon Insideは、アメリカ合衆国および他の国におけるインテル コーポレーションまたはその子会社の商標または登録商標です。