検索速度の比較実験

2008年12月24日(水)
早坂 良太

リソース消費量の比較実験

 インデクシングの実験や検索の実験の際には、sarコマンドを用いてリソース消費量の測定も行いました。sarコマンドはSysstatユーティリティー(http://pagesperso-orange.fr/sebastien.godard/)に含まれるコマンドの1つで、システムの状態を取得できるコマンドです。

 インデクシング実験では、文書数1万、10万、100万におけるインデクシング中のCPU使用率やメモリ使用率、ロードアベレージ、スワップの情報を定期的にログに出力しました。

 今回は文書数10万のときのインデクシング実験でのCPU使用率を比較します。sarではCPU関連の情報として、CPUがユーザーモードになっている時間の割合(%user)、niceで優先度を変更したプロセスによってCPUがユーザーモードになっている時間の割合(%nice)、CPUがシステムモードになっている時間の割合(%system)、CPUがアイドル状態で入出力の完了を待っている時間の割合(%iowait)、OSの仮想化を行っている場合に別の仮想CPUの計算で待っている時間の割合(%steal)、CPUがアイドル状態で入出力を待っていない時間の割合(%idle)を取得することができます。
 

リソース消費量の測定結果と考察

 ユーザーモードになっている時間の割合(図2-1)を見ると、どのシステムでも最初は負荷の高い状態になっています。

 特に、Namazuはインデクシングの間、CPUを消費し続けることが読み取れます。この傾向は文書数1万のときでも同様であり、Namazuはそのような特性のシステムであると思われます。

 Estraierは前半は高負荷なものの、後半ではあまりCPUを使わなくなっています。実はこの後半というのは第3回でも触れたインデックスの最適化を行っている間です。LuceneやHyper Estraierでも終了前はCPU使用率が落ちていますが、これらのシステムでもインデックスの最適化を行っています。

 入出力の完了を待っている時間の割合(図2-2)を見ると、CPUの使用率が落ちているEstraierの後半やLucene、Hyper Estraierの終わり際に待ち時間が増加しています。

 つまり、インデックスの最適化は入出力が大半を占めており、CPUをあまり使わないということが推測できます。逆に、インデクシングはCPUへの負荷が大きく、あまり入出力を行わない処理であることが読み取れます。

 そのほかにCPU関連の情報としてsarで取れる値のうち%nice、%stealは、どのシステムでもほぼ0でした。%systemはどのシステムでも0~5%の数値でしたが、Estraierの最適化時には30%という値を2分ほど示していました。

 CPUの消費量について比較すると、Sennaが若干消費量が少ないという結果になりました。最もCPUの消費量が多いのは、常に高負荷の状態で処理に時間がかかっているNamazuであると考えられます。

電気通信大学 電気通信学研究科 情報工学専攻を修了。尾内・林研究室では検索エンジンをテーマとして研究。全文検索システムの速度性能比較や、検索エンジンの構築を行った。現在は日本アルゴリズム株式会社に所属している。http://www.nalgo.co.jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています