月曜日, 2月 25, 2008

[Linux] mod_rewrite

supercacheという、普通にCGIの結果をユーザに返すだけでなく静的HTMLにもしておき、後続の(いくつかの)同じ情報へのアクセスをそれで返してしまおう、というのがあります。
これはmod_rewriteでやるので良いのですが、更新日時を見てエクスパイヤさせたい(HTMLはあるけどあえてCGIに回して更新させたい)場合、やはりRwriteMapのprgを使うが良いのだろうか。。思案中。
ちなみに、RewriteMapで外部プログラムを使用する場合はRewriteLockでロックファイルを指定する必要があるらしいので注意。

日曜日, 2月 24, 2008

[Linux] mMesure

mMesureとは、チューニングポイントをアドバイスしてくれる機能が付いたMySQLのモニタリングツール(WebGUI)。有効性はともかくとして、PostgreSQLでもこの手のツールがそろそろ(市場として)必要になってくると思います。

土曜日, 2月 23, 2008

[Linux] Workflowエンジン

JP1のジョブ管理と何が違うのかよく分からないのがWorkflowエンジン。ワークフローというからには定型タスクそれぞれであれこれやってくれる(やったよねと確認してくれる)のだろうか。
GalaxiaというPHPで出来たOSSがある。これ自体はTikiwikiというCMSの一部だそうな。

金曜日, 2月 22, 2008

[Linux] scpだけ許すには

scpの実体はsshらしく、制限するにはバイナリとして入れ替えるしかなさそう。これをする場合はscponlyというのや、rsshというのが候補。
別の方法としてOpenSSHとして当該ユーザの実行可能コマンドを制限してしまえば、まぁ良いといえばよいような。Matchという全体オプションでやるか、個人のAuthorized_keys内でもcommandオプションで制限できるのでこれを使うか(でもこれはユーザが自発的に書き換え可能だからセキュリティ的には微妙)。

木曜日, 2月 21, 2008

[Linux] ngnixの処理指定

ぜんぜん良く分かっていないが、RTSIGというのはlibrtを使った非同期IO機構であり、これとEPOLLは並列な様子(ngnixのソース内の分岐がそうなっているように見えるので)。
ngx_event_init_conf(ngx_cycle_t *cycle, void *conf)
{
ngx_event_conf_t *ecf = conf;

#if (NGX_HAVE_EPOLL) && !(NGX_TEST_BUILD_EPOLL)
int fd;
#endif
#if (NGX_HAVE_RTSIG)
ngx_uint_t rtsig;
ngx_core_conf_t *ccf;
#endif
ngx_int_t i, connections;
ngx_module_t *module;
ngx_event_module_t *event_module;
~snip~

というか、事実実験している環境ではobjs/Makefileの中でもrtsig、epoll、sendfileをリンクする指定になっていた。
~snip~
objs/src/event/modules/ngx_rtsig_module.o \
objs/src/event/modules/ngx_epoll_module.o \
objs/src/os/unix/ngx_linux_sendfile_chain.o \
~snip~

librtを使った非同期処理であればコンテキストスイッチが少なくなり(IO多重であるepollよりも)速い、とKLabさんの資料で読んだのだけど、どういう関係で実際のところどうなんだろう。

水曜日, 2月 20, 2008

[Linux] ldap-stats.pl

ファイル名でなんとなく想像がつくとおり、LDAPの統計情報を取るスクリプト。v2.3にも対応しているとのこと。以外にインフラ基盤の中でも「動いていてアタリマエ」になりがちなopenLDAPも、きっちり監視したいですね。

月曜日, 2月 18, 2008

[Linux] nginxとapache

ちまたで話題のNginxとapacheのパフォーマンスレポートを見つけました。面白いのはレスポンスタイム。

ブラウザ体感的にこんな効果があるなら、これだけで使ってみたいです。さらに、変わったところではmod_perlみたいにPerlを組み込みで使うことも出来るそうです。

ちなみに、lighttpdとの比較ではCPU負荷観点でnginxのほうが優れているとのことでした。

日曜日, 2月 17, 2008

[Linux] nginxのstatus

Nginxは運用者にとってちょっと制御してる感が持ちづらい(ワーカプロセス1つで1024コネクションって言われても。。)。コレを少しでも改善するためには./configure時に"--with-http_stub_status_module"をつけると良い。
http://wiki.codemongers.com/NginxHttpStubStatusModule

via kwout


あと、これを見られるようにlocationを指定すれば、apacheのmod_statusっぽい情報が得られるようになり少し安心できる気がする。

土曜日, 2月 16, 2008

[Linux] colinux-0.7.2

colinuxは、手軽に新しいアプリケーションを試すことができたり重宝している割に、バージョンアップに気が付いていませんでした。2.6.22ベースになったようです。

金曜日, 2月 15, 2008

[Linux] nginxの感想

この手のスレッドモデルなhttpdはどうも動作を掌握できている感が無くて困る。apacheのpreforkなんかだとプロセスがセッションに張り付いているのね、ふんふん、みたいに分かり易いが、スレッドモデルの場合はどう理解するのか。
まぁたとえば、なんとなくマニュアルには以下のようにある。
max_clients = worker_processes * worker_connections

ので、唯一、同時接続数が上限に来ちゃうときのロジックはなんとなくわかった。

木曜日, 2月 14, 2008

[Linux] OKWS

OKWSというevent駆動を実験実装した(?)Webサーバがあります.2006年のものなのでたぶんnginxなどに成果は取り入れられているような気もします.が.

水曜日, 2月 13, 2008

[Linux] nginx

nginxの実験をするためにコンパイル。
よくわからないエラーが出たら、それはpcre-develが入っていないからかもしれません。

[tf0054@divers-high nginx-0.5.35]$ ./configure --prefix=/mnt/nginx-0.5.35 \
--with-http_stub_status_module \
--without-http_proxy_module \
--without-http_geo_module
~省略~
[tf0054@divers-high nginx-0.5.35]$ make
make -f objs/Makefile
make[1]: ディレクトリ `/home/tf0054/nginx-0.5.35' に入ります
cd /lib64 \
&& if [ -f Makefile ]; then make distclean; fi \
&& CC="gcc" CFLAGS="" \
./configure --disable-shared
/bin/sh: line 2: ./configure: そのようなファイルやディレクトリはありません
make[1]: *** [/lib64/Makefile] エラー 127
make[1]: ディレクトリ `/home/tf0054/nginx-0.5.35' から出ます
make: *** [build] エラー 2
[tf0054@divers-high nginx-0.5.35]$

バイナリが642kbって、、apacheとは比較にならないほど小さくてよいです。

月曜日, 2月 11, 2008

[Linux] supercache?

ウェブサイトのパフォーマンスを上げるために、アクセスされたときCGIからの出力結果を(ブラウザに返すだけではなく)静的ファイルにも吐いておき、次回以降はこの静的ファイルをapacheで読み込ませて返させよう、というのがよく行われます。
この方式、以外に呼び名に困るのですが、PHPのsymphonyというフレームワーク内ではsupercacheと呼ばれているそうです。。。名前としては微妙ですが、総称としてこれで呼び習わすことにしようと思います。

木曜日, 2月 07, 2008

[apache] Roller

movabletypeのような、ブログ生成ツール(というか彼らはCMSといっていますが)として、apacheファンデーションではRollerというのがあるそうです。
今現在v4.0として公開されており、ちょうどこのバージョンから(同団体の中での位置づけが)インキュベーションレベルから昇格したそうです。
意外に有名なわりにはMTはソースコードが微妙な気がするので、こっちの利用も検討しようと思います。

火曜日, 2月 05, 2008

[Linux] プロセス監視

ZABBIXでのプロセス監視は、sshdなどの例しかなく設定に困った.
mailmanの監視をするには、こんな感じでアイテムを作ればよいらしい(その後トリガを張り忘れないように).
proc.num[python,mailman,,mailmanctl]

事例が少なく勉強しずらいが、機能自体は充実していますね(最後の引数はプロセス特定のためのフィルタです).