サーバお掃除・コンコーダンス備忘録

寝室に設置したサーバの騒音が酷いと妻がクレーム。確かに。原因は明快で,筐体にホコリが堪りまくって空気の流れが滞り,ファンの騒音が増幅されているためである。今日,機械の掃除をした。筐体内部のホコリ,空気孔の目詰まりを取り除いた。サーバを再起動すると静かに動きはじめた。

20120630-pc.png

サーバ再起動作業において FreeBSD オペレーティングシステムの起動が完了したあと,アプリ周りの起動をしなければならない。ところが,困ったことに,滅多にやらないのですぐその手順を忘れる。misima 旧字・旧仮名変換/漢詩分析サービスなどは手続きを整理してあったのでよいが,先ごろ公開したばかりの Конкорданс к тексту А. С. Пушкина プーシキン見出語コンコーダンスについては,コーパス,単語二分木,作品名 DB の共有メモリ構築方法を早くもすでに失念してしまっていた。情けない。開発ディレクトリを眺め直し,構築ツールの usage を出力したりして,起動させた。自分のために,ここにもメモを残しておく。

  1. CorpusLoader によって,コンコーダンス・プログラム concordance が参照するプーシキン全集コーパス,及び,作品番号と作品名を対にした作品名データベースを,共有メモリ上にロードする。concordance は Apache FastCGI として www ユーザ権限で動作するため,共有メモリ・リソースにアクセスできるよう,www ユーザで CorpusLoader を実行する。
    % cd ~/src/pushkin/src
    % sudo -u www -g www ./CorpusLoader \
     ../corpus/utf-8/pushkin.txt ../corpus/db/titledb.txt
    その実行状況は次のとおり。
    20120630-corpus.png
  2. WordTreeBuilder によって,プーシキン全集コーパスから見出形及び出現形での単語二分木を共有メモリ上に構築する。www ユーザ権限が必要なのは同じ。

    % cd ~/src/pushkin/src
    % sudo -u www -g www ./WordTreeBuilder ../corpus/utf-8/pushkin.txt

    その実行状況は次のとおり。

    20120630-wordtree.png
  3. CorpusLoaderWordTreeBuilder の出力情報から,共有メモリ・リソース・ハンドルを concordance.conf に記述し,コンコーダンス Web アプリケーションプログラム concordance に対し,共有メモリのどのアドレスにリソースがマッピングされているかを通知する。

    # -*- coding: utf-8; -*-
    # Concordance 構成ファイル
    # 共有メモリハンドル
    CORPUSHDL=116
    TITLDBHDL=14912096
    WORDTLHDL=96
    WORDTAHDL=23004796
  4. Apache を再起動する。

    % sudo apachectl restart

    これで FastCGI でコンコーダンス・プログラムが動作するようになる。なお,FastCGI 用のコンコーダンス・サービスの設定は /usr/local/etc/apache22/Includes/fastcgi.conf に記述されており,内容は以下のとおり。

    <IfModule mod_fastcgi.c>
        Alias /pushkin/lemmatized/ /home/isao/src/pushkin/src/
        FastCgiConfig -idle-timeout 600 -maxClassProcesses 20 -maxProcesses 60 \
          -killInterval 1200 -autoUpdate -initial-env WT_AP_ROOT=/etc/wt
        Fastcgiserver /home/isao/src/pushkin/src/concordance
    </IfModule>