タグ

ブックマーク / dsas.blog.klab.org (9)

  • ラズパイで作るネットワークエミュレータ(前編) : DSAS開発者の部屋

    ネットワークが絡んだ通信プログラムを開発していると、テストのために遅延やパケロスを意図的に発生させたくなることがあります。いまどきは IDE にネットワークエミュレーション機能が組み込まれていたり、仮想環境で容易に再現できたりもしますが、箱物のネットワークエミュレータがあるとネットワークの構成を気にせずカンタンに設置できるのですごく便利だったりします。世の中にはそういった製品が沢山あるので安価なものを買ってもいいのですが、新たにラズパイが届いたばかりだったので、これを使って超小型のネットワークエミュレータを自作してみました。前編と後編の二回に分けて紹介します。 最近、社内で「ラズパイおじさん」と呼ばれるようになりました。@pandax381 です。 ラズパイ + Linux = ネットワークエミュレータ 「ネットワークエミュレータを自作」と言うとなんだか凄そうな感じがしますが、実はものすご

    ラズパイで作るネットワークエミュレータ(前編) : DSAS開発者の部屋
  • 高負荷でも安定したサービスを提供するためのリバースプロキシ : DSAS開発者の部屋

    KLab Advent Calendar 2011 「DSAS for Social を支える技術」の8日目です。 前回は php のプロセス数を絞ることのメリットを解説しました。 プロセス数を絞るには FPM を使うなどの方法もありますが、 DSAS for Social では php は Apache + mod_php を使っていて、 それにリバースプロキシを組み合わせて利用しています。 今日はこのリバースプロキシの役割を説明して行きます。 以降、リバースプロキシのことを単にプロキシと呼びます。 プロキシを使う理由 そもそも、なぜプロキシを使うのかを説明しておきます。 5秒ルール ケータイ向けのソーシャルアプリでは、ユーザーからのリクエストは 一旦プラットフォームのサーバーを経由して、アプリを提供している Webサーバーに到達します。 このとき、アプリ側のレスポンスがあまりに遅いとプ

    高負荷でも安定したサービスを提供するためのリバースプロキシ : DSAS開発者の部屋
    takasick
    takasick 2011/12/14
  • Apache 2.3/2.4系の新機能を見てみよう 番外編 〜イベントフックの実装〜 : DSAS開発者の部屋

    さて、今回は番外編ということで、2.3/2.4系に限らず現行のバージョンも含めてApacheのイベントフックの実装を見ていきたいと思います。該当箇所を抜き出しながらのソースレビューとなるため文章よりもコード中心の内容となります。では、前回"mpm"イベントフックの定義ということでAP_DECLARE_HOOKマクロが出ましたが、これをもう一度見ましょう。 82 /** 83 * Pass control to the MPM for steady-state processing. It is responsible 84 * for controlling the parent and child processes. It will run until a 85 * restart/shutdown is indicated. 86 * @param pconf the configu

    Apache 2.3/2.4系の新機能を見てみよう 番外編 〜イベントフックの実装〜 : DSAS開発者の部屋
    takasick
    takasick 2010/04/05
  • Apache 2.3向けモジュールを作成しました: mod_session_memcache : DSAS開発者の部屋

    これまで数回に渡ってApache 2.3のmod_sessionとmod_auth_formを探ってきましたが、このたび、セッションストレージにmemcacheを使ってみてはどうかということで、新規のApacheモジュールとしてmod_session_memcacheを開発しました。こちらで公開いたします。 http://log.blog.klab.org/support/mod_session_memcache/mod_session_memcache-0.1.0.tar.gz mod_session_memcache ビルドにあたっては、Apache 2.3のソースパッケージを解凍した先のディレクトリでパッチ形式で扱います。まず、以前の紹介と同じようにhttpd体と上記mod_session_memcacheのそれぞれtarballを取得して解凍したら、出来上がったディレクトリに移動

    Apache 2.3向けモジュールを作成しました: mod_session_memcache : DSAS開発者の部屋
    takasick
    takasick 2010/03/13
  • Apacheのアクセスログをsyslog経由で出力するためのモジュールを作りました : DSAS開発者の部屋

    皆さんは、負荷分散環境でのApacheのアクセスログをどのように取り扱ってますか? 通常、Apacheのログは動作サーバ上のローカルファイルとして出力されるので、 Webサーバを同時に何台も稼働させて負荷分散を行うような環境では、それらすべ てのWebサーバのログファイルを集めなければなりません。ローカルファイルとし て出力されるということは、Webサーバの台数分だけログファイルがばらけること を意味します。考えるだけでめんどくさいですね。 KLabでは、このApacheログを2パターンを使い分けて集めています。ひとつは syslogによるリモート出力を使い、全Webサーバからのログ出力を一か所に集中さ せる方法です。これは、CustomLogディレクティブにloggerコマンドを使用するこ とで可能です。 CustomLog "|/usr/bin/logger -p local6.inf

    Apacheのアクセスログをsyslog経由で出力するためのモジュールを作りました : DSAS開発者の部屋
    takasick
    takasick 2009/10/23
  • phpを高速化する computed goto : DSAS開発者の部屋

    前回 インタプリタ型言語を高速化する computed goto で紹介したcomputed gotoを、「phpでも使えないの?」という声が社内であったので、 php のソースコードを見たところ、特定のビルド手順で php でも computed goto が使えることが判りました。そのビルド手法とベンチマーク結果を紹介しておきます。 php の VM のソースコードは、phpソースパッケージ中の Zend/ というディレクトリの中にあります。zend_vm_で始まる幾つかのファイルのうち、 zend_vm_execute.h というファイルが命令ディスパッチが実装されているファイルで、このファイルは zend_vm_gen.php というスクリプトで生成されています。そして、 zend_vm_gen.php のオプションで、命令ディスパッチの方法を選択できます。(phpのビルドにphp

    phpを高速化する computed goto : DSAS開発者の部屋
    takasick
    takasick 2009/03/31
  • DSAS開発者の部屋:ネットワークパケットを覗いちゃえ

    レイヤを問わず (ethernet から HTTP や SMTP まで) 、ネットワーク絡みのトラブルシューティングや挙動の確認をするときにパケットの流れが見られると非常に有益です。 開眼すると「パケットの流れが目で見える」そうですが、私などはまだまだ修行が足りず裸眼では見えないので、tcpdump というツールを使って見ています。 tcpdump はその名前があまりよくないと私は思っていて、"tcp" だけでなく udp やICMP や ethernet フレームまで覗ける超強力ツールです。 というわけで tcpdump の簡単な説明を書いてみます。 tcpdumpについて tcpdump は UNIX 系の OS で使えるツールなのですが、Windows 用にはWinDumpという CUI のツールがあり、tcpdump と同じように使えます。 GUI がお好みの方は、後でも紹介するE

    DSAS開発者の部屋:ネットワークパケットを覗いちゃえ
  • DSASのファイル転送システムをオープンソースで公開します : DSAS開発者の部屋

    DSASのファイル転送システムを、オープンソースで公開します。 その名は、makuosan(まくおさん:通称「まくお」)っていいます。 名前は冗談っぽいですが、内容はわりと真面目です(^^; MAKUOSANプロジェクトサイト Webサイトの運用に欠かせない作業のひとつに、「デプロイ」という作業があります。 これは、新しいプログラムやデータなどをWebサーバに設置して利用できるようにす ることを指していますが、サイトの規模が大きくなってWebサーバの台数が増えると、 それに比例してファイル転送にかかる時間も長くなっていきます。 一般的な話として、サイトの規模が大きくなるほど運用コストは増大しますが、 その要因のひとつとして「デプロイ時のファイル転送に時間がかかる」という 点がありました。そこで、できるだけ運用コストを抑える(作業者の負担を減 らす)ために、独自のファイル転送システムをこしら

    DSASのファイル転送システムをオープンソースで公開します : DSAS開発者の部屋
    takasick
    takasick 2008/11/06
  • LVSロードバランサの作り方について雑誌記事を書きました! (WEB+DB PRESS Vol.37) : DSAS開発者の部屋

    特集2 Linuxロードバランサ構築・運用ノウハウ 第1章 サーバ負荷分散概論 第2章 LVSで実現するロードバランサ 第3章 ロードバランサの冗長化 第4章 負荷分散システム運用のコツ このブログの過去のエントリ、 こんなに簡単! Linuxでロードバランサ (1) こんなに簡単! Linuxでロードバランサ (2) こんなに簡単! Linuxでロードバランサ (3) 高トラフィックに対応できるLinuxロードバランサを目指して〜LVSをNATからDSRへ をより詳しく丁寧に説明し、加えて運用のコツについても書いた感じに仕上がっております。 LVSやkeepalivedについて書かれた雑誌記事はあまり見かけないので、参考になるのではないかと思います! あとですね、この連載の内容に関連した「とあるもの」を後日プレゼントする予定です。準備ができたらこのブログで告知しますのでお楽しみに〜

    LVSロードバランサの作り方について雑誌記事を書きました! (WEB+DB PRESS Vol.37) : DSAS開発者の部屋
    takasick
    takasick 2008/07/05
  • 1