Project

General

Profile

リスト一覧取得の高速化

Sympaのリスト一覧やリスト操作の一部に「すべてのリストの設定ファイルを読み込む」処理がある。
環境にもよるが、1000リストを超えたあたりからHTMLリクエストが鈍るのを体感するレベルになってくる。
これはスペック不足と言うよりも、テキストファイルを個別に大量に読み込んでいるためである。

ここでは設定ファイルをバイナリ化してキャッシュし、上記の動作を高速化する手順を記載する。
可能であれば処理完了までリスト設定を変更しないようにすること。

設定ファイルの更新

  • sympaの設定を変更する。デフォルトにはないので末尾に追加。
    # vi /etc/sympa/sympa.conf
    --------------------
    cache_list_config binary_file
    
  • 各サービスをリスタートする
    # systemctl restart sympa
    # systemctl restart wwsympa
    

バイナリファイルの作成

  • バイナリファイルを一括作成する。(--list=リスト名を指定して個別作成も可能ではある)
    # sympa.pl --reload_list_config --robot=ドメイン名
    --------------------
    リストの数によって数分かかる
    
    • config.binはこれ以降はリスト設定変更時に個別に更新されるようになりますので、初回のみ実行でOKです。
  • バイナリファイルが作成されることを確認する
    # ls /var/lib/sympa/list_data/ドメイン名/リスト名/config.bin
    
    • あらかじめsympa.confを変更していないと作成されないので注意
  • configの数とconfig.binの数を比較し、数が同じ事
    # ls /var/lib/sympa/list_data/ドメイン名/*/config |wc -l
    
    # ls /var/lib/sympa/list_data/ドメイン名/*/config.bin |wc -l
    

以上でリスト一覧などを行い、高速化されているかを確認する。