Author Archive

    はてなブックマーク - JAWS-UGでAWS採用事例の話をしてきました
    このエントリーをはてなブックマークに追加

    Fusic 平田です。
    JAWS-UG 福岡勉強会のLT枠で、事例の話をしてきました。

    で、いくつか補足や訂正などなど。

    CloudFrontは不要?

    今のところS3が十二分に速いとは言え、当然CloudFrontのほうがその数倍は速いです。
    で、「外れました」と言ってましたが実際は今もCloudFrontで元気に動作しておりました。
    誤解を与えてしまい、大変申し訳ありません。。。

    ただまあ、東京リージョンのS3は国内からアクセスするとかなりの速度が出ます。
    シンガポールのS3とざっくり比較してみたら3.7倍くらい速かったですし、さくらVPS+Apacheと比較してもおおよそ同等でした。
    # 計算違いでなければ、HTTPで35~40Mbpsくらいは出ています。

    s3fsをちょっと補足

    公式はGoogle Codeのほうにあります。
    かなり駆け足で喋ったので、改めて資料を見ていただくのがいいと思いますが。
    実際にマウントしてみると、体感で分かるくらいのラグは生じます。
    今回は採用しましたが、場面によっては採用できないこともありそうです。

    ZENPRE for iPhone

    今回のLTはZENPRE+iPhoneで行いました。
    1/2倍速で聞きたかったと言われるくらいに駆け足でプレゼンしたのですが、3G回線でもほぼ問題なく。

    screen1

    アプリを起動して、右下の「設定」を選択すると

    「Fastest Mode」のON/OFFが切り替えられます。
    これはiPhone側にスライド画像を表示しないモードで、非常に高速です。
    ちゃっちゃとページめくる派なので、このモードなしでは生きていけません。
    今回のLTくらいのスピードでも気持ちよくプレゼンできます。:-)

    まとめ

    と言いたいんですが、特に事例2のほうは構成固まってなかったりもするので、まとまった時点でまた話ができればと思います。

      はてなブックマーク - すごく分かりにくい方法でメリークリスマス
      このエントリーをはてなブックマークに追加

      Fusic 平田です。
      extraってどこのやりこみ系のゲームですか。
      ていうか22日と23日と25日が当たるってひどいですよね。。。

      というわけで聖なる夜にちゃきちゃきblog書いています。

      そう、聖夜です

      てことで、クリスマスを祝う画像を用意しました。
      (クリックで拡大)
      すごく祝っていますね。

      分かりにくいとのことなので

      プログラムでお祝いします。

      >+++++++++++[<++++>-]>>+++++++++++[<+++++++>-]<>>>++++++++++[<++++++++++>-]<+<<.>>.>+++[<++++>-]<+..+++++++.<<<<.>+++[<---->-]<.>>+++++++++++.>>>+++[<---->-]<.<+++[<+++>-]<.>>>++[<+++>-]<.<<<<+.

      やっぱりすごく祝っています。

      解説(コード)

      先に後者。
      説明する間でもありませんが、Brainf*ckのコードです。
      # ちゃちゃっと書いたので洗練されていない点はご勘弁を。
      ここの「Program:」のところにコピペして貼りつけて「Run」を押してみてください。
      ちゃんとお祝いしているはずです。

      解説(画像)

      で、画像のほうはPietです。
      この画像自体がプログラムなんです。
      Brainf*ckからPietへの変換はbf2pietを使いました。
      動作確認はnpietで行っていますが、若干あやしい部分もあるので追検証とかしてくれるとすごく助かります。
      まあそんな暇な人はいないでしょうけど。。。

      てことで

      書いてて悲しくなってきたのでこのくらいでいいでしょうか。
      もうちょっとだけ続くらしいですよ。

        はてなブックマーク - WordPressが動いているサーバのApache設定
        このエントリーをはてなブックマークに追加

        Fusic 平田です。
        次の人にバトンタッチしたつもりが自分でした。

        発端

        このエントリが原因でサーバが落ちたのがきっかけ。
        と言ってもそこまでアクセス数がすさまじかったわけでもないので、いろいろ見直した次第です。
        状況としては

        • 落ちた原因はメモリ枯渇
        • メモリは256MB+swap1GB

        といった感じです。

        見直しその1 – プロセス数とか調整

        とりあえずMaxClientsとかを見直し。
        デフォルトのままで

        <IfModule prefork.c>
        StartServers      8
        MinSpareServers   5
        MaxSpareServers   20
        ServerLimit       20
        MaxClients        256
        MaxRequestsPerChild  4000
        </IfModule>

        になっていたんですが、これだと富豪すぎるので

        <IfModule prefork.c>
        StartServers      8
        MinSpareServers   8
        MaxSpareServers   8
        ServerLimit       8
        MaxClients        8
        MaxRequestsPerChild  32
        </IfModule>

        くらいまで極端に減らしました。
        繋がらないとか出たらまた増やしながら様子見ようという魂胆。

        各設定値についてはこのへんが参考になるかと。
        省運用目的だとこのくらいで十分かな、といった印象です。
        もっとメモリに余裕があって待機プロセス多くても問題ない時は

        <IfModule prefork.c>
        StartServers      32
        MinSpareServers   32
        MaxSpareServers   32
        ServerLimit       32
        MaxClients        32
        MaxRequestsPerChild  64
        </IfModule>

        くらいで運用してたりします。
        「これだと一斉にMaxRequestPerChild迎えて死ぬからいやん」って人はmod_bumpy_lifeがいい感じです。

        見直しその2 – 不要モジュールを切る

        あとは1プロセスごとの使用メモリを抑える方向に。
        余計なモジュールはロードしなくていいので。
        これはいらないだろう、を少しずつ切ってます。

        #LoadModule authz_owner_module modules/mod_authz_owner.so
        #LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
        #LoadModule authz_dbm_module modules/mod_authz_dbm.so
        #LoadModule ldap_module modules/mod_ldap.so
        #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
        #LoadModule env_module modules/mod_env.so
        #LoadModule ext_filter_module modules/mod_ext_filter.so
        #LoadModule dav_module modules/mod_dav.so
        #LoadModule dav_fs_module modules/mod_dav_fs.so
        #LoadModule actions_module modules/mod_actions.so
        #LoadModule speling_module modules/mod_speling.so
        #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

        もっと切っていいモジュールはあるんですが、その辺はサーバの用途とにらめっこして決めるのがいいでしょう。

        で再起動して様子見

        再起動してtopを画面脇に流しつつ様子見。
        こっそりabでリクエスト投げたり普通にリロード連打したりで、とりあえずは安定したっぽいのでこのくらいで。
        まとめると

        • preforkのデフォルト設定は普通のサイトだと結構な富豪具合なので要調整
        • モジュールも明らかに不要ならさっくり切る

        といったところです。
        あまり凝ったことをしないで済むようには心がけています。

        てことで

        今度こそ次の人にバトンタッチ。