FreeBSD メモリディスク

misima 旧仮名遣い・旧字変換サービスは大量の辞書を読み込む。高速化のためには出来る限りファイル入出力のオーバヘッドを減らしたい。そこでサイト運用において FreeBSD のメモリディスクに辞書などの misima リソースを格納して,インコアで処理できるようにしている。FreeBSD メモリディスクとはメモリに割り当てられたファイルシステム機能であり,昔の所謂 RAMDISK というのか,HDD に比べて高速なメモリにファイルを割り当てるものである。以下,そのオペレーションのメモ。

misima の辞書等のリソースは一式 /usr/local/etc/misima ディレクトリ下に格納している。だいたい 5MB 程度である。この容量をもつファイルイメージでメモリファイルシステムを生成しマウントする。

# [1] mkdir -p /usr/local/etc/misima
# [2] cd /tmp
# [3] dd if=/dev/zero of=newimage bs=1k count=5k
# [4] mdmfs -F newimage -s 5m md0 /usr/local/etc/misima
# [5] cd ~/src/misima/etc/
# [6] tar cf - . | ( cd /usr/local/etc/misima; tar xvf -)

[3] でまっさらな 5MB のファイル newimage を作成し(名前は任意。dd コマンドでゼロを 5MB = 1,024 x 5,120 バイト分書き込んでいるだけである),[4] でこれをメモリディスクデバイス md0 として /usr/local/etc/misima にマウントしている。もちろんこの時点で中味はまだ何もないので,[5][6] のように,開発ソースディレクトリから辞書などをコピーして準備完了となる。mdmfs コマンドの日本語マニュアルはここを参照。

mount, df コマンドで確認すると,以下のような表示がされるはずである。

# mount
......
/dev/md0 on /usr/local/etc/misima (ufs, local, soft-updates)
# df -k
Filesystem  1024-blocks     Used     Avail Capacity  Mounted on
......
/dev/md0           4718     3608       734    83%    /usr/local/etc/misima

メモリ上のファイルシステムなので,当然ながらリブートすると跡形もなく消え去ってしまう。misima サービス起動時に上記オペレーションを自動的に実行するようなシェルスクリプトを書いて,運用するとよい。5MB くらいならキャッシュに入ってるって? ま,そうなんだけどね。

Moon Calendar

Profile

ISAO YASUDA。システムエンジニア。神奈川県在住。昭和 30 年代を懐かしむオヤジ。ロシアに興味があります。
[more], [About our site]

Notice

この文書はフィクションであり,実在する個人,団体等とは一切関係ありません。

R-18 指定サイトです。そのうち「18 歳以上ですか」の認証を入れる予定です。

文書の記述内容は無保証です。不適切な表現があればコメントにてご指摘ください。

コメント,トラックバックは,現在,運用を停止しています。ご意見等ありましたら isao@yasuda.homeip.net 宛電子メールにてお願いします。

Links

Entries

About this entry

Written by isao at 2011年9月28日 00:27.

Previous: FreeBSD 8.2-RELEASE HDD 増設

Next: 野崎昭弘『詭弁論理学』

Recent Entries in Main Index.
All Entries in Archive Index.

March 2012

Sun Mon Tue Wed Thu Fri Sat
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Emacs: Monthly Archives

Powered by Movable Type 5.12 Powered by FreeBSD 8.2-RELEASE
blog counter