検索速度のパフォーマンスについて

INSUITE®

■検証条件
INSUITEサーバ構成 Luxorサーバ x 1台
APサーバ x 1台
DBサーバ x 1台
NFSサーバ x 1台
Luxor サーバOS RHEL5.4/64bit
CPU 3050 @ 2.13GHz
Luxorサーバ:1、 2cpu
INSUITE APサーバ:2cpu
INSUITE DBサーバ:2cpu
検索対象機能 ライブラリ
統合検索画面での1ページあたり表示件数 50
検索単語数 1
ヒット件数 1001~10000
INSUITE APサーバのMaxClients 200

以下の要素を変動させて検証を行いました。

  • インデックス保存場所:ローカルディスク、NFS
  • LuxorサーバのCPU数:1、2
  • 同時に検索するユーザ数:10、30
  • JVM※:-Xms256m -Xmx256m、-Xms256m -Xmx512m

※JVMはLuxor設定ファイルsetup.confに設定するjavaHeapOptの設定値です。javaHeapOptの設定に関しては、『Luxor_Ver.1.3.8_インストレーションガイド』を参照してください。

検証結果

インデックスの保存場所 同時検索ユーザ数 CPU JVM 検索時間(s)
ローカル 10 1 -Xms256m -Xmx256m 2.319
10 1 -Xms256m -Xmx512m 2.280
10 2 -Xms256m -Xmx256m 1.757
10 2 -Xms256m -Xmx512m 1.645
30 1 -Xms256m -Xmx256m 9.768
30 1 -Xms256m -Xmx512m 9.623
30 2 -Xms256m -Xmx256m 7.071
30 2 -Xms256m -Xmx512m 5.564
NFS 10 1 -Xms256m -Xmx256m 2.470
10 1 -Xms256m -Xmx512m 2.426
10 2 -Xms256m -Xmx256m 1.759
10 2 -Xms256m -Xmx512m 1.700
30 1 -Xms256m -Xmx256m 12.95
30 1 -Xms256m -Xmx512m 12.83
30 2 -Xms256m -Xmx256m 7.391
30 2 -Xms256m -Xmx512m 6.942

結論

検証結果から、検索速度にはCPUの数とインデックスの保存場所が検索速度に大きく影響することがわかります。

検索速度のパフォーマンス

① インデックスの保存場所がNFSの場合で同時検索ユーザ数が30人、1CPUではレスポンスタイムが13秒となっています。2CPUにした場合、レスポンスタイムはほぼインデックスをローカルに保存するときと同水準となります。

② 同時検索ユーザ数が多いほど、インデックス保存場所の検索速度への影響が大きくなります。また、検証結果には記載していませんが、インデックスを作成する速度もNFSの場合は、ローカルディスクに対して、10~20%程度遅くなります。

Sm@rtDB

■検証条件
INSUITEサーバ構成 Luxorサーバ x 1台
APサーバ x 1台
DBサーバ x 1台
NFSサーバ x 1台
LuxorサーバOS RHEL6/64bit
CPU E5645 @ 2.40GHz x 4
Luxorサーバ:4cpu
Sm@rtDB APサーバ:4cpu
Sm@rtDB DBサーバ:4cpu
Sm@rtDB NFSサーバ:2cpu
メモリ 12G
検索対象機能 統合検索、バインダー内検索
統合検索画面での1ページあたり表示件数 20
検索単語数 1
ヒット件数 801~1000
並列ユーザ数 30
インデックス数 70000

以下の要素を変動させて検証を行いました。

  • LuxorサーバのCPU数 :2、4
  • JVM ※:-Xms512m -Xmx2048m、-Xms512m -Xmx4096m、-Xms512m -Xmx6144m
  • 並列ユーザー数 :1、10、20、30、40
  • rows
  • permit rows
  • max access

上記設定を記載すること

※JVMはLuxor設定ファイルsetup.confに設定するjavaHeapOptの設定値です。javaHeapOptの設定に関しては、『Luxor_Ver.1.3.8_インストレーションガイド』を参照してください。

検証結果1(CPU数とJVMの設定値について)

検索対象機能 同時検索ユーザ数 CPU JVM 検索時間(s)
バインダー内検索 30 2 -Xms512m -Xmx2048m 1.650
30 2 -Xms512m -Xmx4096m 1.649
30 2 -Xms512m -Xmx6144m 2.204
30 4 -Xms512m -Xmx2048m 1.650
30 4 -Xms512m -Xmx4096m 1.642
30 4 -Xms512m -Xmx6144m 1.969
統合検索 30 2 -Xms512m -Xmx2048m 6.214
30 2 -Xms512m -Xmx4096m 13.662
30 2 -Xms512m -Xmx6144m 13.895
30 4 -Xms512m -Xmx2048m 6.085
30 4 -Xms512m -Xmx4096m 12.724
30 4 -Xms512m -Xmx6144m 12.891

バインダー内検索

  • 1 : -Xms512m -Xmx2048m
  • 2 : -Xms512m -Xmx4096m
  • 3 : -Xms512m -Xmx6144m

統合検索

  • 1 : -Xms512m -Xmx2048m
  • 2 : -Xms512m -Xmx4096m
  • 3 : -Xms512m -Xmx6144m

検証結果2(同時検索ユーザー数の変化による検索時間の違い)

LuxorサーバのCPU数:4

検索対象機能 同時検索ユーザ数=1 同時検索ユーザ数=10 同時検索ユーザ数=20 同時検索ユーザ数=30 同時検索ユーザ数=40
バインダー内検索 1.093(s) 1.261(s) 1.554(s) 1.899(s) 2.183(s)
統合検索
検索対象機能:文書
3.894(s) 5.804(s) 6.498(s) 6.969(s) 8.91(s)
統合検索
検索対象機能:プロセス
0.220(s) 0.218(s) 0.177(s) 0.198(s) 0.282(s)
統合検索
検索対象機能:バインダ
0.515(s) 0.501(s) 0.589(s) 1.391(s) 1.532(s)
統合検索
検索対象機能:アプリ
0.126(s) 0.112(s) 0.129(s) 0.179(s) 0.166(s)

■結論

検証結果1から、LuxorサーバのCPUが2cpuもしくは4cpuの場合、JVM設定の推奨設定は-Xms512m -Xmx2048mとなります。
検証結果2から、同時検索ユーザ数が多いほど検索速度への影響が大きくなります。
統合検索の場合、同時検索ユーザー数が20人以上の場合、検索時間が大幅に増加する傾向にあります。