タグ

ブックマーク / www.iij.ad.jp (3)

  • IIJ Technical WEEK 2012 - Haskellで実装した高速WebサーバMighttpdについて

    1 Haskell Web Mighttpd 2012.11.14 2 Mighttpd Haskell 3 Mighttpd Haskell Web 4 Mighttpd 5 Ping Pong 12 Linux 3.2.0 weighttp -n 100000 -c 1000 -t 3 -k http://127.0.0.1:8000/ index.html 151 6 WAI Web Application Interface type Application = Request -> ResourceT IO Response 7 Haskell 8 Haskell 9 10 11 12 13 1 1 14 15 Haskell Timeout timeout :: Int -> IO a -> IO (Maybe a) recv :: Socket -> Int -> IO St

  • キャッシュエンジンの比較(3/3) | IIJの技術 | インターネットイニシアティブ(IIJ)

    前回、前々回は、キャッシュサーバに期待される役割と、キャッシュサーバやキャッシュエンジン、特にVarnish Cache、Apache Traffic Serverについて、IIJで行った比較実験の結果を交えて詳しく説明しました。最後に、nginxについて取り上げます。 nginx nginxは、既に紹介している機能のほかに、下記のような特徴を持っています。 非同期のイベント駆動による高速な処理能力 サービスを止めずにバイナリをアップデートできる 豊富な3rdパーティ製モジュール nginxは、既に紹介している他のキャッシュエンジンと同様に、接続を非同期のイベント駆動の仕組みで処理しますが、処理能力はその中でも高く、多くの接続が集中するサイトを運営するにあたり、大きなアドバンテージを持つと言えます。 また、nginxの主なプロセスである、実際に接続を処理するworkerプロセスとそれを管理

    キャッシュエンジンの比較(3/3) | IIJの技術 | インターネットイニシアティブ(IIJ)
  • 高速WebサーバMighttpdのアーキテクチャ | IIJの技術 | インターネットイニシアティブ(IIJ)

    IIJ-II技術研究所では、2009年の秋からMighttpd(mightyと読む)というWebサーバの開発を始め、オープンソースとして公開しています。この実装を通じて、マルチコアの性能を引き出しつつ、コードの簡潔性を保てるアーキテクチャにたどり着きました。ここでは、各アーキテクチャについて順を追って説明します。 ネイティブ・スレッド 伝統的なサーバは、スレッド・プログラミングという手法を用いています。このアーキテクチャでは、1つのコネクションを1つのプロセスかネイティブ・スレッドが処理します。 このアーキテクチャは、プロセスやネイティブ・スレッドを生成する方法で細分化できます。「プール」方式では、あらかじめ複数を起動しておきます。例としては、Apacheのpreforkというモードが挙げられます。「都度」方式では、コネクションを受け取るたびに生成します。このアーキテクチャの利点は、制御を

    高速WebサーバMighttpdのアーキテクチャ | IIJの技術 | インターネットイニシアティブ(IIJ)
    array08_12
    array08_12 2012/05/29
    haskellで出来てるらしい
  • 1