おめでとう おめでとう わたし

と言うわけで今日はお誕生日でした(バックデート記事)

今年は10/26にグレスコでバースデー特典をしてもらって、りおっちゃにメッセージカードを書いてもらったのをかわきりに。

今日は自主誕生日休暇を行使して、久しぶりにふらふらと遊んでみた。

秋葉原のルノアールで、現在進行中の某プロジェクトの資料を作って、丸五で特ロースを定食で。超久しぶりだけど丸五うまい。超うまい。

そのあと新宿のハンズへ。サザンテラスはもうイルミネーションの準備が始まってた。今年もスイッピツリーがあるなら見に行きたいなあ。昼なら休日じゃなくてビジネスデーに休みをとって行くと裏側まで札せいできそうな気もする……。ハンズは欲しいものがいくつかあったので記憶。来月お金あったら買おう。

で、秋葉に戻ってJAMでお茶とか。先週あたりの日曜日に行ったときは無線LANがIPは配られるけどDNS等の情報がこない状態だったのだが、今日はすんなりつながった。なんとなくルーターのMACテーブルがあふれるとDHCPの挙動がおかしくなるのではないかと想像。あと地味に禁煙席にもコンセントが増えたのでうれしい。

各種メディア(?)にてバースデーメッセージをいただいた方、ありがとうございました!

さくらのVPSを検討

結局過負荷問題はアドホックな対応しかできないので。

今は専用サーバエントリーなんだけど、予算の都合で上のクラスのサーバーを借りるのは難しい。

そもそもなんで専用サーバかという原点に戻ってみると、tiarra/keitaircが常駐出来る環境で*.jpで逆引き出来るって言うのが必要条件かなあと。(さくらの専用サーバを選んだ理由は、所有ドメインがさくらで全部管理されているのと、さくらのレンタルサーバを利用していた実績があるから)

で、逆引きは今や自分のドメインで逆引き出来ることにこだわらないので、さくらのVPSも出来たことだし、そっちに移行しても良いかなと。

が、さすがにディスク容量が足りなかったり、メモリーが512Mでは一台分丸ごと移行は難しい、気がする。

と言うわけで、一応こんな感じで借りたらどうかな案

  • tiarra/keitairc等の常駐プロセス用VPS
  • 管理していwebはさくらのレンタルサーバーに収容
  • 監視系としてVPSもう一個
  • できれば実験用にVPSもう一個

レンタルサーバーは複数台借りた方がいいのかその辺が微妙だけど、プレミアム1本として 980×3+1500=4440円 現状 7800円だから、3360円のコストダウン。

デメリットはサーバが複数台に渡るので管理がめんどくさいのと、VPSが思っているような性能がでるのか? だなー

しばらく考えよう。とりあえずVPS一個借りてみて様子を見るべきかなー。

若干改良

uptimeを呼んで数値を得るのではなくて直接/procから数値を読むようにした。
同時にswapの空きが10Mを切ったときも、リスタートするように変更。

元の書き殴りじゃあんまりなのでちゃんとstrictとwarningsを指定した。しばらく使いそうだしね。

#!/usr/bin/perl
use strict;
use warnings;

my $limit15 = 10;
my $limit5  = 15;
my $limit1  = 30;
my $limitM  = 10 * 1024;

print "$limitM:$limit15:$limit5:$limit1\n";

while(1){

    my $swapFree = 0;
    my $load15 = 0;
    my $load5 = 0;
    my $load1 = 0;

    open MEMINFO,"/proc/meminfo" or die;

    while(<MEMINFO>){
        next unless /^SwapFree/;
        my @workTbl = split(/[\s:]+/);

        $swapFree = $workTbl[1]+0;
    }

    close MEMINFO;

    open UPTIME,"/proc/loadavg" or die;

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

        $load15 = $workTbl[2] + 0;
        $load5 = $workTbl[1] + 0;
        $load1 = $workTbl[0] + 0;
    }

    close UPTIME;

    my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time());
    $mon += 1;
    $year += 1900;

    if($load15 > $limit15){
        if($load5 > $limit5){
            if($load1 > $limit1){
                print '('. join(':',($swapFree,$load1,$load5,$load15)).") restart at $year/$mon/$mday $hour:$min:$sec : cpu busy\n" ;
                system("/sbin/service httpd restart");
                sleep(60);
            }
            else {
                print ' ('. join(':',($swapFree,$load1,$load5,$load15)).") step2 at $year/$mon/$mday $hour:$min:$sec \n" ;
            }
        }
        else {
            print ' ('. join(':',($swapFree,$load1,$load5,$load15)).") step1 at $year/$mon/$mday $hour:$min:$sec \n" ;
        }
    }

    if($swapFree <= $limitM){
        print '('. join(':',($swapFree,$load1,$load5,$load15)).") restart at $year/$mon/$mday $hour:$min:$sec : memlow \n" ;
        system("/sbin/service httpd restart");
        sleep(30);
    }
    sleep(10);
}

うお

今、負荷が想定を超えて、強制リスタートモニターが起動はした。

が、総定数よりもかなり過負荷にならないとロジックが発動しない……そりゃそうか、中でプロセス起動してるものなあ、監視もリスタートも。

と言うわけで、とりあえず過負荷のまま遷移はしないことはわかったけど、もうちょっとロジックを考えた方がよさそう。

週末が終わる感じで

なんか感覚的に三連休な気持ちでいたが、そんなわけもなく。

基本的に今の仕事はめんどくさくて、あんまりやる気しないんだけどなあ。たまにはおいらの提案が通らないものか……

なんだかねむいのです

すごく体力を消耗した状態で週末に突入した割に、夜中に途中覚醒したり、なんだか日中ねむかったり……

っていうかいい加減部屋の片付けをしなければと思いつつ、週末には別のことやったり昼寝したりしてるなあ……

よしよし

うまく発動した。

が、思わずリミットを下げすぎてしまったので連続してhttpdをリスタートしまくる結果に……

不整合とか起きてないよね?

うーん

ツールの妥当性テストができないので、一時的にリミットを落として実行してみる。

発動するかしら?

うーむむむ

トラップかけたら負荷が上がらないとか!
うまくトラップかかってるかどうか検証できないのだぜ……