Title: 動作速度を改善する TeamPage チューニング TIPS

ここでは TeamPage をより軽快に速く動作させるための、TeamPage サーバーを稼働させるコンピューター環境、TeamPage サーバーのチューニング、TeamPage を表示するブラウザ環境について解説します。

メモリの搭載量とOSによる管理



クリーンアップと CPU 負荷



TeamPage が確保したメモリ領域に対して、使用メモリ量がある割合を超えたとき、TeamPage はメモリのクリーンアップを開始します。このような、プログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放・掃除する機能を「ガベージコレクション」と言います。

TeamPage が確保する最大メモリ量は 最大ヒープサイズ で、クリーンアップを始める割合は メモリ クリーンアップのしきい値 で設定されています。どちらも、サーバーセットアップ | 一般 タブ | Java 設定 タブ にある設定項目です。

メモリのクリーンアップ作業が始まると、CPU に大きな負荷がかかり、TeamPage サーバーの動作が遅くなる場合があります。したがって、TeamPage サーバーの動作を軽快に保つには、大容量のメモリを搭載してクリーンアップの発生頻度を低く抑えることが有効です。

64bit OS



32bit 環境では、ヒープサイズ (TeamPage が確保するメモリ容量) は最大 1.5GB に制限されます。また、一般的に 32bit OS では 4GB までのメモリ領域しか認識できません。大容量のメモリを活かすには 64bit の OS が必要です。

メモリ搭載量が 4GB 未満のコンピューターであっても、64bit OS は実メモリと仮想メモリを合わせて 64bit で管理できます。したがって、メモリ搭載量にかかわらず、TeamPage サーバーを 64bit 環境で稼働させることを推奨します。

なお、より良い動作パフォーマンスを得るには、最大ヒープサイズは実メモリ容量未満にしてください。

ページ表示のボトルネックの調査



ログや HTML ソースでページ生成の所要時間を確認でき、どの部分がボトルネックになっているのか、どの部分の改善を図れるのかを考えるのに役立ちます。

ページ生成時間を計測するには、サーバーセットアップの デバッグログ のオプションで [timing] をオンにします。(既定でオンになっています)

Proteus スキン



Proteus スキンでは、デバッグログ (debug.log) の各行の末尾に「in XXXms」のようにミリ秒単位で記入されます。

proteus

Mexico スキン



Mexico スキンでは、ページHTML ソースの末尾にコメントとして挿入されます。

詳しい手順は、FAQ776: Mexico スキンのページ生成の時間を確認するには を参照してください。

HTMLソース中のtiming情報

セクションで検索・抽出する範囲



セクションで記事やコメントを検索・抽出する方法によって、結果を得るまで(つまりはセクションが表示されるまで)に要する時間が大きく変わります。セクションを設定するときは、検索・抽出する範囲をなるべく狭め、動作の速い方法を選択するようにしてください。

「最新記事」と「タグ」



「絞り込み」の「検索」は、「セクションに含める記事」で抽出した記事のすべての段落に対する検索を行ないます。「タイプ」で「最新記事」を選択して「検索」で「:タグ名」を指定した場合の動作は、「タイプ」で「タグ」を指定し「タグ」でタグを選択した時の動作に比べて、結果を得るまでに時間がかかります。

例えば、「Labo」スペースから「ヘッドライン」タグが貼られた記事を抽出するセクションを作る場合、次のような方法が考えられます。



セクション設定例 (1) - 低速 セクション設定例 (2) - 高速
すべてのスペースから投稿日時順に記事をすべて取り出し、それから「Labo」スペースの「ヘッドライン」タグが貼られた記事を抽出する。 すべてのスペースから、「Labo」スペースの「ヘッドライン」タグが貼られた記事で抽出する。
セクション設定 その1 セクション設定 その2


上記の 2 つの設定によって作成されるセクションの内容は、下図のように同じものになりますが、(2) の方がはるかに高速に動作します。

2つのセクションは同じ動作になる

(1) の方法では、TeamPage はすべてのスペースから、ページを表示しようとしているユーザーの「記事の読み取り」権限がある記事をすべて抽出し、それからすべての記事のすべての段落に対して、「Labo」スペースの「ヘッドライン」タグが貼られているかどうかを調べていきます。それに対して、(2) の方法では、予め記事の抽出範囲は「Labo」スペースのみに狭められます。

以上のような理由により、(1) より (2) の方が高速に動作しセクション生成にかかる時間が少ないので、ページを素早く表示できます。

さらに抽出範囲を狭める例



ここでは「『Labo』スペースの『todo』タグと『p1』タグが同じ記事または段落に付いているもの」を抽出する例を考えてみます。

「2つのタグが同じ記事または段落に付いている」を表すには、ラピッドセレクタi(:Label1 and :Label2) を使うので、ここでは次の検索を指定することになります。

2つのタグが同じ段落または記事に付いている条件指定

下記は、この検索設定を指定して「『Labo』スペースの『todo』タグと『p1』タグが同じ記事または段落に付いているもの」を抽出する 2 つの例ですが、(3) より (4) の方が抽出作業が早く終わり、結果としてページが速く表示されます。

セクション設定例 (3) - 低速 セクション設定例 (4) - 高速
Laboスペースのすべての記事のすべての段落から「todo」と「p1」タグの両方が付いた記事をひとつずつ調べていく。 Laboスペースの中から「todo」タグが付いた記事だけを選び出し、そこから「todo」と「p1」タグの両方が付いた段落を検索する。
セクション設定(範囲が広い)` セクション設定(範囲が狭い)


(4) では、初めに「todo」タグで絞り込むことで、i() による「両方のタグが付いている段落」の検索範囲が狭まることに注目してください。

また、何かタグが貼られた記事を抽出するには、タイプで [最新の記事] を指定して検索でタグを絞り込むより、タイプで [タグ] を選択し「タグ」で対象タグを指定する方法を推奨します。後者のほうが動作が遥かに速いからです。

期間範囲の広さ



TeamPage は、既定で、指定された期間内に投稿された記事だけを画面に表示します。

メモ:検索は、全期間が(期間範囲外も)検索対象になります。

既定の期間は、サーバーセットアップとパーソナルセットアップの次の場所で選択します。詳しくは DocJp509: 期間設定の既定値 を参照してください。



Mexico スキンでは、右サイドバー上部のカレンダーから現在の期間範囲を確認、変更できます。下図は、2010年6月20日(日)~2010年6月28日(土)までの一週間に投稿された記事を表示する、という期間範囲の例です。

期間範囲カレンダー

下図のように [期間設定を使用せずに常にすべての記事を表示する] チェックボックスがオフのセクションには、期間範囲設定が適用されます。

セクションの絞り込みに期間範囲を適用するかどうか

上のカレンダーの期間範囲が選択されている場合、2010年6月20日(日)より前に投稿された記事や2010年6月28日(土)より後に投稿された記事はセクションに含まれません。TeamPage は、すべての記事からではなく、この一週間に投稿された記事の中から「ヘッドライン」タグが貼られたものを抽出すればよいので、対象となる範囲が狭く、結果として抽出作業が早く終わり、高速にセクションが表示されます。

注意 : 期間範囲の設定で「今週」を選択していると、週が変わって月曜日に出勤して TeamPage を表示したとき、セクションに何も記事が含まれていない、ということが起こりえます。これは、期間設定によってセクションに今週投稿された記事だけが表示されるようになっているため、先週投稿された記事は期間範囲外であり、今週はまだ始まったばかりなので記事が投稿されておらず、表示されるべき記事がないために起こります。



スペースの投稿数カウント



Mexico スキンの設定で、「スペースの選択方式」で [リスト] を選択し、「スペースへの投稿数の表示」で [はい] を選択している場合、左サイドバーの各スペースへのリンクに、それぞれのスペースの投稿数が表示されます。

スペース一覧

この投稿数の算出には、期間設定や各スペースでのユーザーの権限を考慮するため、時間がかかることがあります。Mexico スキン設定の「スペースへの投稿数の表示」で [いいえ] を選択すると、リストに投稿数は表示されなくなりますが、ページの表示速度が向上します。

投稿数の表示設定

参照 : DocJp586: スキン設定

最近更新されたファイルのリスト



Mexico スキンの右サイドバー下部には、スペースの共有フォルダへのリンクがあります。このリンクの下に、既定で、最近更新されたファイルやフォルダが 5 件表示されますが、この表示をオフにする(更新されたファイルを表示しないようにする)ことでページ表示速度が向上します。

スペースの最近更新されたファイル一覧

この設定を行うには、Mexico スキンの設定画面の、「スペース共有フォルダ内の最近更新されたファイルのリスト」で [いいえ] を選択します。

最近更新されたWebDAVファイルのリスト

この表示設定がオンの場合、TeamPage はスペースの共有フォルダ内のファイルやフォルダの更新日時を比較して、最近の更新の一覧を作成します。ファイルやフォルダが多いほど比較に時間がかかります。ファイル一覧の作成が終わるまでページは表示されません。したがって、この表示をオフにすると、比較計算をしなくて済み、ページ表示が速くなります。

JavaDB プロセスの分離



利用状況集計レポート機能 (Metrics) や投票機能 (Rating) には JavaDB (Java Database) が使われています。通常、JavaDB は TeamPage 本体と同じプロセスで動作しますが、これを別プロセスに分離できます。これにより、特にメモリ搭載量の少ない 32bit マシンで、パフォーマンスが向上することがあります。

詳しい手順については、FAQ770: JavaDBのプロセスをTeamPageと切り離して実行させるには を参照してください。

ブラウザの選択



TeamPage では多くの JavaScript や Ajax が使われているため、Google Chrome や Firefox など、これらを高速処理できるブラウザを使用することで速度の改善が図れます。

参照 : Forum38

なお、TeamPage 5.1 以降で利用できる Proteus スキンでは、Internet Explorer 6 (IE6) はサポートされません。

表示エフェクト



記事や段落の選択を示す灰色枠や右クリックメニューの表示には、既定で、「じわ~」っとした表示効果(エフェクト)が付けられています。このエフェクトを無効にして、灰色枠や右クリックメニューが瞬時に表示されるようにするには、次の設定項目で [オフ] を選択します。



参照 : DocJp405: ビジュアル効果

ビジュアル効果

灰色枠と右クリックメニュー

ログの分割や無効化



肥大化したログがパフォーマンスに悪い影響を与えることがあります。ログを自動分割したり、削除したり、あるいはログを記録をしないようにするなど、必要に応じたログ設定ができます。



アクティビティとデバッグのログ



デバッグ ログ (debug.log) にはたくさんの詳細オプションがあり、アクティビティ ログ (traction.log) の標準的な内容に加えて、さまざまな詳細情報を記録できます。

アクティビティ ログの内容はデバッグ ログにも記録されるので、もしデバッグ ログを記録する運用をするならば、内容が重複するアクティビティ ログは不要になります。逆に、標準的なアクティビティ ログで事が足りる場合は、デバッグ ログは不要です。

たくさんの詳細オプションをオンにしてデバッグ ログを記録すると、デバッグ ログに記録される量が増え、肥大化しやすくなります。必要な詳細オプションだけをオンにすることを推奨します。





Attachments:
HTML_source_timing.png
same_paragrah_2labels.png
section_example_3.png
section_example_4.png
timeslice_calendar.png
section_timeslice.png
show_articles_amount.png
webdav_project.png
show_fileportlet.png
visual_effects.png
visual_effects2.png
section_settings_01.png
section_settings_02.png
compare_two_sections.png
space_list.png
debug_ms.png
log_rotate.png
dubug_log_options.png
関連記事
Article: FAQ778 (permalink)
Categories: :FAQ:運用保守, :FAQ:表示, :DocJp:FAQ
Date: 2010/11/01; 15時00分12秒 JST

Author Name: TeamPage サポート
Author ID: jpbo