WAS高速化の要とトランスポート・チャネル・サービスWebSphereサーバ・チューニング入門(2)(1/3 ページ)

» 2007年05月08日 00時00分 公開
[上野憲一郎日本アイ・ビー・エム]

本連載は、Javaアプリケーション・サーバの1つである、IBM WebSphere Application Server(以下、WAS)についてのパフォーマンス・チューニングに関する入門記事です。チューニングといっても、実施するエンジニアによって、その方法は異なりますが、本連載はWASを前提とし、かつ80%のケースをカバーすることを目標とします(編集部注:WASのインストールから学びたい読者は、「バージョン別セットアップマニュアル一覧」のWebSphere Application Serverを参照してください)


 前回はチューニングを実施する前にやっておくべきとして、実施しなければならないパフォーマンス・ボトルネックの把握および解析について、パフォーマンス・チューニング関連ツールの紹介を含めて解説しました。

 連載第2回目のトピックとして、まずは、WASパフォーマンス・チューニングの主要項目について簡単な説明をします。その後で、パフォーマンス・チューニングの主要項目の1つである「トランスポート・チャネル・サービス」について解説します。

WAS高速化のための主要12項目

 WASは非常に多くのパフォーマンス・チューニングのためのパラメータオプションを提供しています。さまざまなアプリケーションやAS環境に応じて、それらパラメータの中から適切なものを適切な値に調整することにより、WAS上でアプリケーションを最適に稼働できます。

 ここで取り上げるWASパフォーマンス・チューニング主要項目リストは、一般に多くのアプリケーションでパフォーマンスやスケーラビリティの向上に役立つものを含んでおります。ただし、筆者の経験でもまれにユニークな環境において本項目リストに取り上げるものが適さないケースや取り上げていない項目が性能向上の鍵となるケースも存在していることもありました。ですので、必要に応じてほかの項目を検討する場合もあります。

図1 WASパフォーマンス・チューニング主要項目 図1 WASパフォーマンス・チューニング主要項目

1:JVM(Java Virtual Machine)

 JVMヒープサイズの調整およびGC(ガーベッジ・コレクション)ポリシーの調整によりパフォーマンス性能向上を見ることができます。

2:HTTPSession

 HTTPSessionオブジェクトのサイズやクラスタリング環境におけるHTTPSessionの設定がパフォーマンス性能に影響を及ぼす場合があります。

3:JDBCデータ・ソースおよびドライバ・タイプ

 JDBCデータ・ソースの設定は、パフォーマンス性能に大きな影響を及ぼす場合があります。例えば、接続プールのサイズやPrepared Statementのキャッシュ・サイズの調整はアプリケーション・デザインおよび同時リクエスト数などを基に最適化する必要があります。

 JDBCドライバには、いくつもの種類があります。また、各ベンダによって特徴があります。例えば、Type2やType4といったドライバ・タイプの違いに加え、IBM社の場合は、旧世代のドライバと「Universal JDBC Driver」あるいは「JCC Driver」と呼ばれる新世代のドライバがあります。

 また、DBがWASと同じマシン上に存在する場合とリモートマシン上に存在する場合といった環境によって、パフォーマンス面で最適なドライバを検討する必要があります。

4:ORB(pass by reference)

 ORB(Object Request Broker)の“pass by reference”オプションを設定することにより、パフォーマンス性能に大きなメリットを与えることがあります。EJBSession Beanが別のSession Bean、あるいはEntity Beanを呼び出すケースで、両者が同一JVM内で稼働している場合に、その享受を得られる可能性があります。

編集部注ORBについて詳しく知りたい読者は、@IT Insider's Computer Dictionaryの[CORBA (Common Object Request Broker Architecture)]をご参照ください

5:トランザクション・ログ

 アプリケーションによっては、WASのトランザクション・ログに非常に頻繁にログを書き込むケースがあります。その場合には、WASのトランザクション・ログの書き出し場所を高速ディスクRAIDなど)に指定し、ディスク書き出しがボトルネックにならないように調整します。

6:JMS(Java Message Service)

 Reliability(信頼性)とパフォーマンス性能は、トレードオフの関係になります。WASのメッセージング・エンジンは数種類のReliabilityオプションを提供しており、アプリケーション特性を考慮して最適なものを選択するようにします。パーシスタント先としてDBを指定する場合には、JDBCデータ・ソースの調整が必要になります。

 MDB(Message Driven Bean)を使用する場合には、スレッド・プールのサイズの調整などが必要となります。

7:スレッド・プールおよび「トランスポート・チャネル・サービス」

 WASの各コンポーネントのスレッド・プールのサイズを調整することにより(最小サイズおよび最大サイズを指定)、性能向上を行えます。

 Webアプリケーションの場合には、Webコンテナ・スレッド・プール、EJBアプリケーションの場合には、ORBスレッド・プールの調整を行います。特に、Webアプリケーションの場合には、「トランスポート・チャネル・サービス」の設定との関連を理解する必要があります(「トランスポート・チャネル・サービス」の説明については、後述します)。

8:動的キャッシング

 動的キャッシングを使用することにより、パフォーマンス性能を向上できます。なお、動的キャッシングの利用に際しては、あらかじめアプリケーション・デザインの段階で検討をしておく必要があります。

9:外部コンポーネント

 WAS以外のコンポーネント、例えば、Web(HTTP)サーバDBの調整が、システム全体の高速化に必要となります。

10:アプリケーション・デザイン

 パフォーマンストラブルは、アプリケーション・デザインに起因する場合があります。アプリケーション・デザインが原因の場合には、その検証・見直しが必要になります。

11:OS(オペレーティング・システム)

 OSの設定も重要なチューニング項目です。TCP/IPの設定やファイル・ディスクリプタ数の設定を調整することにより、性能が向上する場合があります。

12:ハードウェア構成と設定

 ネットワーク接続の設定を最適なものにします。パフォーマンス性能という視点では高速設定、例えば、ギガビットイーサネットや高性能なスイッチの使用などです。

編集部注スイッチについて詳しく知りたい読者は、@IT Insider's Computer Dictionaryの[スイッチ (switch)]をご参照ください

 Full DuplexHalf Duplexかといったネットワークの知識も必要になります。イーサネットアダプタデバイス・ドライバのバージョンや設定、ネットワークメモリバッファ容量なども検討項目です。

編集部注Full Duplexについて詳しく知りたい読者は、@IT Insider's Computer Dictionaryの[全二重 (full-duplex)]を、Half Duplexについては[半二重 (half-duplex)]ご参照ください

 さて、いままでの解説でWASのパフォーマンス・チューニング項目の全体像がつかめたことと思います。ここからは、上記パフォーマンス・チューニング主要項目で取り上げた項目を中心に特定のテーマ・項目に焦点を当てて解説を行っていきます。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。