2011年2月26日土曜日

.xz なファイル

FreeBSD 8.2-RELEASE がでてたので、dvd の iso をミラーサイトから入手。

みると、 FreeBSD-8.2-RELEASE-amd64-dvd1.iso.xz となっている。
今回から gz やめて xz にしたみたいだ。普及のきざし?

・・・なので xz を入れる。以下、Mac OS X で MacPorts を利用。

% port info xz
xz @5.0.1 (archivers)
Variants: universal

Description: XZ utils consist of a few relatively separate submodules: *
LZMA/XZ encoder/decoder command line tool similar to gzip/bzip2 *
Scripts to ease grepping, diffing and viewing (lz*grep,
lzdiff/lzcmp, lzmore/lzless)
Homepage: http://tukaani.org/xz/

Library Dependencies: libiconv, gettext
Platforms: darwin
License: unknown
Maintainers: afb@macports.org, openmaintainer@macports.org

% sudo port install xz

% port contents xz
Port xz contains:
/opt/local/bin/lzcat
/opt/local/bin/lzcmp
/opt/local/bin/lzdiff
/opt/local/bin/lzegrep
/opt/local/bin/lzfgrep
/opt/local/bin/lzgrep
/opt/local/bin/lzless
/opt/local/bin/lzma
/opt/local/bin/lzmadec
/opt/local/bin/lzmainfo
/opt/local/bin/lzmore
/opt/local/bin/unlzma
/opt/local/bin/unxz
/opt/local/bin/xz
/opt/local/bin/xzcat
/opt/local/bin/xzcmp
/opt/local/bin/xzdec
/opt/local/bin/xzdiff
/opt/local/bin/xzegrep
/opt/local/bin/xzfgrep
/opt/local/bin/xzgrep
/opt/local/bin/xzless
/opt/local/bin/xzmore
/opt/local/share/doc/xz/AUTHORS
/opt/local/share/doc/xz/COPYING
/opt/local/share/doc/xz/COPYING.GPLv2
/opt/local/share/doc/xz/examples/xz_pipe_comp.c
/opt/local/share/doc/xz/examples/xz_pipe_decomp.c
/opt/local/share/doc/xz/faq.txt
/opt/local/share/doc/xz/history.txt
/opt/local/share/doc/xz/lzma-file-format.txt
/opt/local/share/doc/xz/NEWS
/opt/local/share/doc/xz/README
/opt/local/share/doc/xz/THANKS
/opt/local/share/doc/xz/TODO
/opt/local/share/doc/xz/xz-file-format.txt
/opt/local/share/locale/cs/LC_MESSAGES/xz.mo
/opt/local/share/locale/de/LC_MESSAGES/xz.mo
/opt/local/share/locale/it/LC_MESSAGES/xz.mo
/opt/local/share/man/man1/lzcat.1.gz
/opt/local/share/man/man1/lzcmp.1.gz
/opt/local/share/man/man1/lzdiff.1.gz
/opt/local/share/man/man1/lzegrep.1.gz
/opt/local/share/man/man1/lzfgrep.1.gz
/opt/local/share/man/man1/lzgrep.1.gz
/opt/local/share/man/man1/lzless.1.gz
/opt/local/share/man/man1/lzma.1.gz
/opt/local/share/man/man1/lzmadec.1.gz
/opt/local/share/man/man1/lzmainfo.1.gz
/opt/local/share/man/man1/lzmore.1.gz
/opt/local/share/man/man1/unlzma.1.gz
/opt/local/share/man/man1/unxz.1.gz
/opt/local/share/man/man1/xz.1.gz
/opt/local/share/man/man1/xzcat.1.gz
/opt/local/share/man/man1/xzcmp.1.gz
/opt/local/share/man/man1/xzdec.1.gz
/opt/local/share/man/man1/xzdiff.1.gz
/opt/local/share/man/man1/xzegrep.1.gz
/opt/local/share/man/man1/xzfgrep.1.gz
/opt/local/share/man/man1/xzgrep.1.gz
/opt/local/share/man/man1/xzless.1.gz
/opt/local/share/man/man1/xzmore.1.gz


ダウンロードした .xz は unxz でほどけばよい。

% file ~/Downloads/FreeBSD-8.2-RELEASE-amd64-dvd1.iso.xz
/Users/katsuji/Downloads/FreeBSD-8.2-RELEASE-amd64-dvd1.iso.xz: xz compressed data
% ls -l ~/Downloads/FreeBSD-8.2-RELEASE-amd64-dvd1.iso.xz
-rw-r--r--@ 1 katsuji staff 2132232848 2 26 11:18 /Users/katsuji/Downloads/FreeBSD-8.2-RELEASE-amd64-dvd1.iso.xz
% unxz -v ~/Downloads/FreeBSD-8.2-RELEASE-amd64-dvd1.iso.xz
/Users/katsuji/Downloads/FreeBSD-8.2-RELEASE-amd64-dvd1.iso.xz (1/1)
100 % 2,033.5 MiB / 2,302.8 MiB = 0.883 31 MiB/s 1:13

% ls -l ~/Downloads/FreeBSD-8.2-RELEASE-amd64-dvd1.iso
-rw-r--r-- 1 katsuji staff 2414686208 2 26 11:18 /Users/katsuji/Downloads/FreeBSD-8.2-RELEASE-amd64-dvd1.iso

% sha256deep ~/Downloads/FreeBSD-8.2-RELEASE-amd64-dvd1.iso
4e2d31e7aa9ce20fd263dec0388469c0d4ae7cdf54508a466637abeef5081c91 /Users/katsuji/Downloads/FreeBSD-8.2-RELEASE-amd64-dvd1.iso

http://en.wikipedia.org/wiki/Xz

2011年2月11日金曜日

はじめての data=writeback

はじめて、というのはうそで、、data=writeback にするの忘れてたら痛い目みたというお話。
以下の通り。

とあるアプリで猛烈に TokyoTyrant をシバくものをプログラマさんが作りました。

ぼくはいつもどおりにサーバ一式を用意しました。

めでたくリリースされました。

しかし数日たち、、日に日にエラーがましまし。。

アプリケーションサーバ不足は追加により、すぐに解消しました。

それでも夜の混雑時にはエラーがでたり、鈍重になります。

モニタリングしているグラフをみると、WAIT CPU がひどい状態です。

そういえば、と思ってみると、TokyoTyrant を動かしているサーバの
casket.tch をおいているパーティションを data=writeback にしていませんでした。

幸いなことにちょうど、メンテ予定日が設けられていました。

メンテ時に TokyoTyrant を停止し、writeback でマウントしなおし、TokyoTyrant を再開しました。

その後 WAIT CPU は消えさりました。

めでたしめでたし。


15:00 にメンテ開始、16:00に再開
図1


図2


図3

2011年2月1日火曜日

dnscache キャッシュ量の調整

これも久しぶりにしたので、メモ的に。

How to adjust the cache size をみる

上記に従いログを確認

2011-01-30 22:00:35.746890500 stats 72343 2097173 1 0
2011-01-31 22:00:35.518843500 stats 436907 13747389 6 0

stats 行の 2つめの数値をみてキャッシュがどんだけ増えたかを確認 (1つめはクエリ回数)

13747389 - 2097173 = 11650216

10M (10000000) で設定しておいたため、

10000000 / 11650216.0 = 0.8583531841813061

1 だともちっと大きくてよく、10 だと無駄っぽく、3日が一般的な最大値ということなので、
前日との差 * 3 が収まるくらいまで増量。CACHESIZE を 36000000 , DATALIMIT を 37748736 にした。
CACHESIZE < DATALIMIT にしておけばどうなっててもいいんだったけ、、。
この場合は 36 * 1000^2 と 36 * 1024^2 で差をつけた。

これで様子見