サーバ名やホスト名の名前解決の早さ
WebFOCUSで利用されるサーバ名やホスト名
ブラウザからWebFOCUSにアクセスするURL(http://サーバ名/ibi_apps/~等)や、WebFOCUSからデータベースにアクセスする際に、サーバ名やホスト名が利用される場合がありますが、サーバ名やホスト名を利用する場合はそのサーバの位置(IPアドレス等)を名前から確認するためのタイムラグが発生します。
通常の名前解決は数ミリ秒で処理されるため、ほとんどの場合は気にならないレベルですが、環境によっては名前解決に1秒近い時間が掛かるケースがあります。
WebFOCUS周辺でサーバ名やホスト名が利用される箇所
①ユーザ端末からWebFOCUSサーバ名へのアクセス
ユーザのブラウザからアクセスするURL(http://サーバ名/ibi_apps/~等)
②WebFOCUSサーバからデータベースサーバへのアクセス
WebFOCUSの設定として定義しているデータベースサーバの名前
また、データベースクライアント側の定義ファイルに利用されているサーバ名等
データベースクライアント側の定義ファイル例:
・Oracleの場合 tnsnames.ora ファイル
・ODBCの場合 OSのデータソース設定
③WebFOCUSサーバからロードバランサへのアクセス
WebFOCUSの内部処理でロードバランサの名前(転送元URL)を利用する場合があります。
名前解決が数ミリ秒遅いだけで性能劣化するのか?
過去事例でデータベースへの名前解決が0.8秒遅いというケースがありました。
例えば下図のような「親⇒子⇒孫」で連鎖する条件入力フォームがあった場合、それぞれで0.8秒遅延することになり、合計で2.4秒遅くなることになります。
名前解決の早さを確認する
ここでは、ping コマンドで計測する方法をご紹介いたします。
アクセス元の端末やサーバ上から、「ping サーバ名」と「ping IPアドレス」の両方を実行して時間差を確認します。
Windowsの場合
コマンドプロンプトから以下のコマンドで応答時間を確認します。
powershell -C Measure-Command {ping サーバ名}
結果例(約3.06秒ということが分かります):
Days : 0
Hours : 0
Minutes : 0
Seconds : 3
Milliseconds : 60
Ticks : 30609074
TotalDays : 3.54271689814815E-05
TotalHours : 0.000850252055555556
TotalMinutes : 0.0510151233333333
TotalSeconds : 3.0609074
TotalMilliseconds : 3060.9074
Linuxの場合
以下のコマンドで応答時間を確認します。
time ping -c 4 サーバ名
結果例(約3.06秒ということが分かります):
4 packets transmitted, 4 received, 0% packet loss, time 3066ms
rtt min/avg/max/mdev = 0.030/0.032/0.038/0.005 ms
real 0m3.069s
user 0m0.000s
sys 0m0.003s
アクセスを早くする(名前解決を早くする)
サーバ名やホスト名を利用したい場合は、hostsファイル等で名前とIPアドレスを関連付けしておくと改善する場合があります。各サーバへのアクセスする際にサーバ名を使うことにこだわりが無い場合は、サーバ名ではなくIPアドレスを利用すると改善する場合があります。
サーバ名が含まれる可能性がある環境設定ファイル
以下のファイルにホスト名が使われている場合は、IPアドレスに変更した時にpingコマンドの応答が早くなるかどうか確認してみましょう。
- WebFOCUSコンポーネント間の疎通設定
/ibi/WebFOCUSxx/client/wfc/etc/odin.cfg - WebFOCUSリポジトリDBへの疎通設定(JDBC URL)
/ibi/WebFOCUSxx/config/install.cfg
/ibi/WebFOCUSxx/config/webfocus.cfg - レポート用DBへの疎通設定(データアダプタ)
/ibi/srvxx/wfs/etc/edasprof.prf