nDiki : 2004年01月20日

2004年1月20日 (火)

[ WiKicker ] 古くても検索キャッシュを返す

先日実装した Memcached による検索キャッシュ、1ページでも書き換えがあったら馬鹿正直にキャッシュを無効扱いするようにしてある。

NaneyOrgWiki は繁忙時にはサーバの負荷が上がるのを抑えるため自動的に検索機能を停止するようにしてあるのだが、本当はこの間も検索できるようにしたい(検索Wikiの肝だし)。 いまのところ WikiPage は内容が追加されるる事の方が多いので、多少古いキャッシュを使っても精度はあまり落ちないはず(再現率は下る可能性がある)。

ということで、load averages が高い時は古くても検索キャッシュがヒットすればそれを検索結果として返すようにしてみた。

スポンサード リンク

[ 日記 ] SpeedyCGI による、同時処理数制御

SpeedyCGI はもともとPerlスクリプト起動時の遅さ(インタプリタ起動 + プログラムのコンパイル)を回避するために、一度起動させたPerlプログラムを使いまわすもの。 Apache管理権限のない一般ユーザでもインストールして利用できるしプログラムに問題があった時の対応も簡単なので、重宝している。

もちろん mod_perl でのコーディングと同様、グローバル変数の扱いなど気をつけなければならない点はある。 ハイパー日記システムも残念ながらそれらを意識しては書かれていないのでSpeedyCGI下では、うまく動かない。

このSpeedyCGIだが同時に生成できるバックエンドプロセスの数(-M オプション)と、各バックエンドプロセス(使いまわされるPerlプログラム)の実行回数(-r オプション)を指定できる。 例えば -M15 ならバックエンドの数を最大15になる。 16個目のアクセスがあるとバックエンドのどれかが空くまで待たされる事になる。 また -r の方は実行しているうちにどんどんメモリ使用量が増えてしまうような行儀の悪いプログラムの時などに使用するもので、例えば -r30 としておくとそのバックエンドは30回呼び出されると終了させられる(そして新しいバックエンドがまた作られる)。

で話は長くなったが例えば '-M15 -r1 -t1' というオプションにすれば、何度も実行できないようなコードのCGI プログラムでも、同時処理数制御用として SpeedyCGI が使えるというわけ(-t はバックエンドのタイムアウト指定)。

この日記もロボットの絨毯爆撃などがあるとサーバに高負荷をかけてしまう事があるので、SpeedyCGI で同時処理数を抑えるようにしてみた。 さて効果はあるかな?

過去の今ごろ

過去の1月20日より。

[ www.naney.org ] サーバ重い

ホスティングサーバに入っている別のユーザのCGI プログラム(index.cgi)が昨日の夜からメチャクチャ重い。 アクセス数が多いとかじゃなくて、プロセスどんどん残ってしまっている感じ。 普通CGI プログラムって30分も動かさないでしょ。 待ち状態じゃなくてずっとRUN状態だから、ループに落ちているのかなぁ。 load averages が下らん(さすがに朝は落ちついていたのだが、昼に確認したら20前後)。 メモリは1 CGI プログラムにつき3MB前後。 (Perl スクリプトである事を考えると)、たいしてメモリは使っていない様子。

2004/1/19・Diaryに一行つっこみフォームが復活しました。インタラクティブな日記 再び!是非ご利用ください。

これが非常に怪しい。

何か見覚えのあるサイト名だと思ったら、同じ高校出身の人だ。 4学年下の方だから同時に学校にいた事はないと思うが。 同じサーバに収容されたのかぁ (昔は違うURLだったから)。

[ Linux ] qmail-smtpd に2GB以上のSMTPセッションを受けるとバッファオーバーフローを引き起こす可能性

/etc/qmail/databytes (Debian の場合の場所)に2GB以下の数値を指定すればよいらしい。

[ 1月20日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.098029s / load averages: 3.13, 2.03, 1.11
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker