とりあえず対症療法……

たぶん、XMLsitemapまわりとかの更新通知後に、更新確認にアクセスが殺到するのが原因な気がするんだけど……

とりあえず、暫定的対症療法として、loadを監視してhttpdをリスタートするスクリプトをクイックハックしてみた。

#!/usr/bin/perl

while(1){
    print "check:";

    open UPTIME,"uptime|" or die;

    while(<UPTIME>){
        split(/[\s,]+/);

        $load15 = $_[12] + 0;
        $load5 = $_[11] + 0;
        $load1 = $_[10] + 0;

        print join(":",($load1,$load5,$load15)).":";
        if($load15 > 10){
            print '.';
            if($load5 > 15){
                print '.';
                if($load1 > 30){
                    print 'restart';
                    system("/sbin/service httpd restart");
                }
            }
        }
    }
    print "\n";

    close UPTIME;

    sleep(10);
}

うわー、だいたいあってたなあ>XENOGLOSSIA

今日は過去日記の整理をしていたので……

アイドルマスターXENOGLOSSIA : 5話まで見た内容とOPからの今後の予想。(2007/05/06)が、かなり当たっている件について。っていうか、かなりふざけて書いたはずなんだが……

[春香]     熱血主人公やがて世界最強のアイドルマスター王に。
 → 熱血とはちょっと違うけど、最後まで無条件に相手を信用し続けて世界を救った。
[伊織]     最後まで待機任務。
 → 途中真の補充要員となるもあえなく待機任務に戻る
[真]       春香と対立するが、13話ぐらいで春香をかばって死亡。
 →春香を裏切ってトゥリアビータへ
[亜美真美] 真の補充要員。
 →若干ニュアンスが違うけど、新たなiDOLとともに参戦
[雪歩]     実はトゥリアビータのスパイ。重要な機密を奪って逃走するも春香に倒される。
 →ビンゴ! 倒されなかったけど。
[千早]     春香の好敵手。最終話で行方不明に。続編では名前を変えて味方で登場。その後、ネオトゥリアビータの総統に。
 →ビンゴ! 続編無かったし、意識体として溶けちゃった的な結末だけど。
[律子]     ただの整備班長
 →ほぼあってる。
[やよい]   ただのコスプレ芸人
 →ほぼあってる。
[あずさ]   ただのおばさん
 →実はキーパーソンだった。千早と溶けて混ざる。
[美希]     カメオ出演
 →カメオどころか出てないw

こええなあ。特に雪歩。いや、OPを素直に読み取るとそうなんだよねー。途中の展開でだいぶだまされて、ああ、そんなこと無いですよねーと思ったら実はw

全然資源が足りないっぽい……

ごはん食べて帰ってきたら、ロードアベレージ119.7とかでスラッジングをおこして事実上システム停止してた……。swapのフリーが0Kとかどう見てももうだめ。

再びさくらインターネットに連絡してリブート。

常駐プロセスのうち、運用上の必要度が低いものから数個止めた。具体的にはファイアウォールログをMySQLに書き込んでwebから履歴参照できるようにするデーモンと、clamav。clamavはもうこのサーバーでメール受けてないし、使ってる人もボクだけだから、ローカルでチェック済みのものをアップロードする分にはファイルシステム内スキャンは必要ないだろうと。

で、どうかなー?

デ・ジ・キャラットファンタジー をもう一度プレイしてみたい気がする

例によってWordPressに移行した過去日記にタグをつける作業をしておりますが。

デ・ジ・キャラットファンタジーをですね、もう一回プレイしたいなあ、と。ちょっと思った。

割とデ・ジ・キャラット界では黒歴史っぽい作品ではありますけれども。でじこが全然でじこらしくないですけれども。

なんかねー、ストーリーとか好きなタイプだった気がするのだよねー。

Windows版とドリームキャスト版は引っ越すときに確実に捨てた覚えがあるんだよなあ……

PS2版をどうしたっけかなあ……。

現時点での.screenrc

なんかどうにも負荷がかってスラッジングをおこしがちなので、とりあえず状況を常時監視することにした。

~/.screenrc

defutf8 on
defkanji UTF-8
defencoding UTF-8
encoding UTF-8 UTF-8
defscrollback 10000
autodetach on
startup_message off
multiuser on
caption always "%n %t %= %{=b wk} %{=s wb}%y/%m/%d %{=s wb}%02c"
bind ^e encoding eucJP UTF-8
bind ^u encoding UTF-8 UTF-8
bind ^w encoding sjis UTF-8
bind ^j encoding jis UTF-8
chdir
screen -t "top +" /usr/bin/top
scrollback 0
split
focus down
screen -t "vmstat +" /usr/bin/vmstat 10
scrollback 200
split
focus down
chdir tiarra
screen -t "tiarra: errlog.stderr" /usr/bin/less errlog.stderr
screen -t "tiarra: errlog.stdout" /usr/bin/less errlog.stdout
chdir
screen -t "sakura.fairies.jp"
screen -t "* work tty *"

まあ、別途負荷がかかったときの対策なり、負荷がかからないようなチューニングが必要という前提で。

OAuthを自分のアプリで実装する方法を調べてみる

ゼロから学ぶOAuth | gihyo.jp あたりを眺めてみる。

Ruby on Rails で実装できるのであればちょっと挑戦してみてもいいかなあ。

OAuth 自体は権限委譲の枠組みなので、サービスを提供する「OAuth Service Provider」側がどのように委譲を許可するかは実装にゆだねられているのか。

たとえば社内システム連携等のアクセス制御にOAuthを利用するのであれば、認証の妥当性検証をオペレーターに判断させて、トークン等はシステムで直接配布しない運用とかでも行けそうだねー。

そうか、メモリーか

結局 MaxClients を減らすと通常時でもコネクションが足りないという……

どうしたものかと思っていたら、phpのメモリー制限を、移行時のアップロード制限を緩和するために128Mに上げてったのでした。
そりゃ巨大なプロセスが上がるわね。

で、
/etc/php.ini

memory_limit = 8M      ; Maximum amount of memory a script may consume

戻してみる。どうでしょう?