タグ

ブックマーク / blog.nomadscafe.jp (21)

  • G-WANはなぜ速いのか?をnginxと比べながら検証してみた - blog.nomadscafe.jp

    ツチノコブログのWEBサーバベンチマークツール比較の記事で紹介されていた。WebサーバのG-WAN。この記事によると凄く速いようです。 Intel Xeon E5-2640 (6コア/12スレッド 2.50GHz) を2つというサーバで gwan  334944 req/s nginx 111842 req/s と、速いと言われているnginxの3倍の速度を出しています。 このベンチマーク結果がとても気になったので、なぜG-WANが速いのか、自分でも検証してみました。 結論から言うと以下の2つ。 1) G-WANはデフォルトで物理CPUに合わせた数のスレッドを起動する 2) HTMLファイルも一度読み込んでキャッシュする という事です。 今回はAWSのcc2.8xlarge(E5-2670 8コア/16スレッド 2.60GHz *2)を使ってベンチマークを行いました。OSはAmazon L

    mickn
    mickn 2013/09/04
  • Starlet が HTTP/1.1 に対応しました / wrkによるベンチマークとYAPC::Asiaのトーク宣伝 - blog.nomadscafe.jp

    Starlet が HTTP/1.1 に対応しました。これによりでnginxのupstream keepaliveなどが捗ると思われます https://metacpan.org/release/Starlet https://github.com/kazuho/Starlet ながらくStarletはHTTP/1.0 + keepaliveなサーバでしたが、version 0.20にてHTTP/1.1に対応しました。具体的に対応したスペックは以下。 HTTP/1.1 keepalive Transfer-Encoding: chunked (Request & Response) Expect HTTP Pipelining StarmanやMonocerosとだいたい同じ動きをするようになっていると思われます。 なお、導入にあたっては、リバースプロキシ等と組み合わせた場合の動作パターン

    mickn
    mickn 2013/08/26
  • Kossy と DBIx::Sunny で作る nopaste - blog.nomadscafe.jp

    GrowthForecastや社内のサーバアラートビュアーで使っているWeb Application Framework Kossyの使い方。 KossyはCPANにリリースされているので、cpanm でインストールができます $ cpanm Kossy アプリケーションのひな形を作る kossy-setup というコマンドもインストールされるので、これを使います。今回のサンプルアプリケーションの名前は KoPaste としましょう。 $ kossy-setup KoPaste mkdir lib/KoPaste mkdir views mkdir public mkdir public/js mkdir public/css mkdir public/images mkdir t writing lib/KoPaste.pm writing t/00_compile.t writing

  • YAPC::Asia 2012 で発表してきました!日本よ、これが #yapcasia だッ!! - blog.nomadscafe.jp

    5.6!5.6!5.6! 今年も無事にYAPC::Asiaに参加と発表させて頂く事が出来ました。牧さん、941さん、JPAの皆様、ボランティアの皆様、参加した全てのPerl Mongersに感謝です。 今年の発表は、去年のこの時期にやっていたlivedoor Blogのサーバ集約作業とその為につくったツールや自動化について紹介させて頂きました。 質問でも出てきた「作成した移行スクリプトの検証」ですが、メンテナンス時間内にデータベースのコピーが完了するかどうかの検証とあわせて、実際に実行して確認していました。今にして思えばdry-runモードを作ってテストケース書いて確認するぐらいやってもよかったかもしれません。次回(があれば)チャレンジしたいです。 もう一つ言い忘れてましたが、mysql40dumpはMySQL 5.1、5.5でも検証済みで弊社でもヘビーにサーバ運用に使っています。自動でm

    mickn
    mickn 2012/10/01
  • Apache httpd.conf の Allow from .. にコメントを書いてしまうとDNSの逆引きが行われてレスポンスが悪化するので注意の件 + コメントが書けるようになるパッチ - blog.nomadscafe.jp

    Apacheのconfにコメントを書く際に、設定の後ろに書く事はできないのは知られているのかどうかよくわかりませんが、その通りです。例えば MaxRequestsPerChild 200 #少なめに これは syntax error になります % ./local/httpd/bin/apachectl -t Syntax error on line 12 of /Users/.../local/httpd/conf/httpd.conf: MaxRequestsPerChild takes one argument, Maximum number of requests a particular child serves before dying. よくやりがちなんですが、ドキュメントにも Directives in the configuration files are case-in

    mickn
    mickn 2012/04/04
    Apache httpd.conf の Allow from .. にコメントを書いてしまうとDNSの逆引きが行われてレスポンスが悪化するので注意の件 + コメントが書けるようになるパッチ - http://t.co/OugJhSkw
  • Q4Mを簡単に導入する方法 - MySQL Casual Advent Calendar 2011 - blog.nomadscafe.jp

    xaicronとネタが被ったようだけど気にしない>< livedoorでOperations EngineerやってるkazeburoだYo。最近livedoorからオープンソース化された3億ファイルを管理してるオブジェクトストレージ「STF」でも使ってるMessage QueueのQ4Mのインストール方法を紹介するよ! カジュアルだからインストールだけ! 知ってる人も多いと思うけどQ4Mはkazuhoさんによって開発されたMySQLのストレージエンジンとして実装されてるMessage Queue。livedoorではもちろん、mixiやDeNAをはじめソーシャルゲーム各社でも使われている。 Message Queueの説明や使い方はDIS_COMMENTでテーブルスペースフルの神様が書いてるので参考になるね! Perl Hackers Hub 第10回 ジョブキューで後回し大作戦―Th

    mickn
    mickn 2011/12/10
  • Webアプリケーションにおける Job Queue システムの構成例と Worker を作る際に気をつけること - blog.nomadscafe.jp

    Webアプリケーション内で処理を直列に実行せずにJob Queueに回して非同期に実行することが多くなって来て久しいと思いますが、そのおすすめ構成と気をつけることについてつらつらと。 1) 既存のデータベースをキューとして使う構成例 1つ目はMySQLなどのデータベースをキューとして用いる例。既にアプリケーションで利用しているデータベースにキュー用のテーブルを作成して利用します。データベースを利用したキュー管理の仕組みとしてJonk、Qudo、TheSchwartzなどがPerlでは有名どころです。 依存するミドルウェアが増えないので最もシンプルな構成になると思います。 上記の図ではWorkerはアプリケーション内で実行することで冗長性を確保しますが、キューを格納するデータベースはSPOFになります。しかし、、データベースに障害があった場合キューだけでなくすべてのサービスが停止すると思われ

  • dotcloud で nopaste なアプリケーションを動かしてみたよ - blog.nomadscafe.jp

    miyagawaさんがjoinしてにわかにアツいdotcloudでnopasteなアプリを動かしてみたよ nonopaste http://www.kazeburo.dotcloud.com/ ソース https://github.com/kazeburo/NoNoPaste-Cloud 元々、ここで紹介したモノで、dotcloud上で展開するにあたりいくつか変更している。主な変更点は psgiをapp.psgiにrename。libへのパスも通す 手軽に動かすためにSQLiteだったのでMySQLに変更 MySQLの設定はホームディレクトリ以下に config.pl を置いてそれを読む込む仕様に サーバの時間がUTCなのでそれにあわせて変更 Makefile.PL に不足がないように inc ディレクトリもgitで管理 です。 だれかが書いていたような気もするけど、dotcloud で

  • YAPC::Asia 2010 Tokyo で CloudForecast について喋ってきた - blog.nomadscafe.jp

    Yokohama.pm で話したこと+αで、監視についての話、CloudForecastの概要とインストール方法、拡張方法、また生成するグラフの見方、運用方法について紹介しました。 slideshare版の資料にはありませんが、発表で使った資料の最後はShibuya.pmの中継を見ていた息子です。去年の発表でも画像の縮小のサンプルにもつかってました^^ \n\n[Yokohama.pm](https://blog.nomadscafe.jp/2010/07/yokohamapm-6cloudforecast.html) で話したこと+αで、監視についての話、CloudForecastの概要とインストール方法、拡張方法、また生成するグラフの見方、運用方法について紹介しました。\n\nslideshare版の資料にはありませんが、発表で使った資料の最後はShibuya.pmの中継を見ていた息子

  • プロのサーバ管理者がApacheのStartServers, (Min|Max)SpareServers, MaxClientsを同じにする理由 - blog.nomadscafe.jp

    kazuhoさんが「プロのサーバ管理者の間では存在価値が疑問視されて久しい (Min|Max)SpareServers だと思う」と書いたり、hirose31さんが去年のYAPC::Asiaで{Start,{Min,Max}Spare}Servers,MaxClientsは同じにしているよと発表したり、実際前職のサーバはそのように設定されていたのですが、自分でうまく説明ができてなかったので、調べながら書いてみた。 当はイントラブログ用に書いていたものですが、がんばったので転載。 前提として、CPUの使用率におけるsystemとfork Re: クラウドがネットワークゲーム開発者にもたらしてくれたもの - blog.nomadscafe.jpでも書いている通りforkってのはサーバにとって重い部類の処理になります。つまり負荷の高いときにforkを大量に行うのはしてはならないことの1つです。

    mickn
    mickn 2010/09/02
  • CloudForecastでmemcachedのコネクション数をモニタリング - blog.nomadscafe.jp

    先週のmixiの大規模な障害は、memcachedに対する接続が非常に多いところから発生したようなので、CloudForecastでその接続数をモニタリングできるようにしてみました。 (mixiではたぶんおそらくmemcachedは専用のサーバとなっているので、通常のTCP Established数がそのんままコネクション数になるはず) グラフは以下のように出力されます 赤いラインが起動時に指定した -c の値。 ところで、このmemcachedの起動オプションを取得する方法は今までないものだと思っていたのですが、memcached 1.4以降なら「stats settings」というコマンドで取得できるようです。 % telnet localhost 11211 Trying ::1... Connected to localhost. Escape character is '^]'.

  • memcachedのプロトコル変更の件 - blog.nomadscafe.jp

    memcachedに依存するシステムやコードを書く人は大嫌いな訳だけど、スケーラビリティを向上させてレスポンス時間の高速化には必須なmemcachedですが、最近のプロトコル変更には疑問を感じてしまう。 1.4.0では、こちらに書いた通り、いつの間にかdeleteのtimeoutがサポートされなくなった。なので、 delete key timeout noreply というコマンドが無効になって困ることになった。それでも delete key timeout というコマンドは、timeoutにどんなも文字列が入っていてもエラーになることはなかった。timeoutは効かないけど。 ここから1.4.4ではさらに悪化。timeoutが0でないとエラーになるようになった。つまり delete key 0 noreply delete key 0 は有効なんだけど、 delete key 10 がエ

    mickn
    mickn 2010/02/08
  • アプリケーションがマルチスレッドでもマルチコアCPUを活かせない件 - blog.nomadscafe.jp

    もっと詳しい方のフォロー募集です アプリケーションがマルチスレッドになってもネットワーク処理が分散されなければマルチコアを活かせない典型的な例です。id:viverの古橋さんがs100kpsとしてあげていた件にも近いかも。 memcachedで現象を確認します。最近のmemcachedはマルチスレッドで動くようになっているので、まずはそれを確認します。 $ memcached-tool localhost stats|grep threads threads 4 スレッドが4つで起動しています。 負荷がそれなりにある状態(8000req/sec程度)で、コマンドラインでtopを開き、「1」キーを押して、CPUごとの使用率を表示します。(例はFedora8 kernel-2.6.23) Tasks: 77 total, 1 running, 76 sleeping, 0 stopped, 0

    mickn
    mickn 2010/01/29
  • 来年度(2010年度)のRFPで主流となりそうなサーバ - blog.nomadscafe.jp

    WEB+DB PRESS Vol.51の連載で、サーバRFPを設定してそれに基づいて購入していると書きましたが、来年度(2010年度)ぐらいのRFPになりそうな主流となるサーバを考えてみました。 まず、共通していること、前提など CPUのコア数はHTなどによる論理コア含む計算 ネットワークインターフェイスは1Gbpsを2つ以上。RX/TX MultiQueueをサポートしていること SSDはIntel X25-M 160GBもしくは同等製品 サーバは主に4タイプあります。 ■Utility Server 小規模DB、Q4MやGearmanなどのJobQueue/Workerサーバ、memcachedやSquid/Varnishなどのキャッシュサーバに利用するサーバ。目的に応じてHDDをSSDに換装して利用できることが必要となります。 CPU 8コア以上 * 1 Memory 16GB HD

    mickn
    mickn 2010/01/27
  • データベースサーバを複数台構成とか2010年代には流行らない - blog.nomadscafe.jp

    奥一穂さんの「ウェブアプリケーションサーバを複数台構成とか2010年代には流行らない」にフォローのような感じで。 例によってタイトルは煽りです。 奥一穂さんのエントリーでは、「5,000万PV/Month」という見積もりでアプリケーションサーバの台数を1台と計算していますが、これからは「1,000万PV/Day」を超えるサイトが多く生まれてくると予想しています。どんなサイトかというと、mixiアプリやモバゲーなどにソーシャルゲームを提供するサイトです。 ソーシャルゲームサイトのキャパシティプランニングについては中澤さんのエントリーが参考になります。 The Art of モバゲー Capacity Planning The Art of Mixi-mobile-appli Capacity Planning 最も人気がでた場合には数千万から数億PV/Dayという数字がならんでいます。怖い怖

    mickn
    mickn 2010/01/12
  • mod_libmemcached_cacheでApacheのcacheをmemcachedに保存する : blog.nomadscafe.jp

    mod_libmemcached_cacheでApacheのcacheをmemcachedに保存する Apacheのmod_cacheのキャッシュ保存先にmemcachedが使えればいいのにと長年思ってきましたが、mod_libmemcached_cacheがそれを実現してくれました。 しかも、libmemcachedを利用しているので、性能も高く、またConsitent Hashingも使えますし、バイナリプロトコルもばっちりです。 図にするとこんな感じ。revserse proxyのcacheがmemcachedになるので、cache効率が上がり、またApplicationサーバからも同じmemcachedが参照できるのでcacheを変更したりできるかもしれません。 導入 mod_libmemcached_cacheはgithubから入手できます http://github.com/a

    mickn
    mickn 2009/06/28
  • フォームの入力を確認するData::FormValidatorとFormValidator::Simple : blog.nomadscafe.jp

    フォームの入力を確認するData::FormValidatorとFormValidator::Simple フォームから送信されたデータのチェックをするモジュールはCPANに二つあります。Data::FormValidatorと加藤さんのFormValidator::Simpleがそれ。いままでガリガリと書いていた部分をこれを用いて楽ができないかと試し中。 メールアドレスとパスワードを入れるような以下の登録画面があって、 <form> メールアドレス:<input name="mail" type="text" id="mail" size="20" /><br /> パスワード:<input name="password" type="password" id="password" size="20" /><br /> もう一度パスワード:<input name="password_co

  • Cache::Memcached::Fastを試す : blog.nomadscafe.jp

    Cache::Memcached::Fastを試す Perlの新しいmemcachedクライアント「Cache::Memcached::Fast」がでていたので試してみた 結論から言うと、これは使えそう。 まず、C::M::Fastはmemcached-1.2.4でサポートされた、append, prepend, cas, gets, gets_multiをサポートする唯一のPerlクライアントです。また、常に問題となるCache分散にKetama consistent hashing algorithmをサポートしているためCacheの組み替えを最小限にしてCacheサーバの追加が行えます。 手元のベンチマークでは50%〜80%、処理によりますが300%以上高速化されてます インストールは普通にCPANから行えます。ただし、memached-.1.2.4が動いていないとmake test

  • Tugela Cacheを使ってみる : blog.nomadscafe.jp

    Tugela Cacheを使ってみる Tugela Cacheとは、MediaWikiの人がつくったMemcachedのストレージをBerkeleyDBに入れ替えたCache Serverです。 使っているとか聞いたことがないですし、情報もすくないです 特徴としては、 既に書いたけど、BDBにデータを保存 Cache切れの値を削除するプログラムが別にある Memcachedとプロトコル同じ あたりでしょうか インストールには、libeventとBDBのライブラリが必要です。 そんなに迷わないと思われます $ svn checkout http://svn.wikimedia.org/svnroot/mediawiki/trunk/tugelacache $ cd tugelacache $ make $ sudo cp tugela /usr/local/bin $ sudo cp tug

    mickn
    mickn 2007/09/04
  • Shell::Perl と pirl を試してみる : blog.nomadscafe.jp

    Shell::Perl と pirl を試してみる id:naoya氏がブクマしてたのを見て入れてみた。 pirlは、perlshのような対話型のperlシェルです。 Shell::Perlをinstallしようとすると、新しいExtUtils::MakeMakerを要求されるので、cpanコマンドでいれずに、Makefile.PLを書き換えた -use ExtUtils::MakeMaker 6.31; +use ExtUtils::MakeMaker; 同時にinstallされるpirlコマンドを実行するとこんな感じ。 $ pirl [~] Welcome to the Perl shell. Type ':help' for more information pirl @> 1+1 2 pirl @> log 10 "2.30258509299405" pirl @> :helpでヘ

    mickn
    mickn 2007/03/16