タグ

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

  • ISUCON3 で優勝してきました!!! #isucon - blog.nomadscafe.jp

    いやぁ、、ほっとした。予選はこっちのblogに書かないぐらい惨敗した気分だったのでよかった。勝たなければ「LINE選抜大した事無い」とか「元出題者wwww」とか言われるし、勝ったら「#茶番」とか言われる立場でしたが、まじほっとしました。やったぁぜぇぇえぇえ!!! (写真は http://isucon.net/archives/33919770.html から引用) チームは、@tagomorisさん、@sugyanさんとの「LINE選抜チーム」です。お疲れ様でした!! isucon3戦いってきた&勝ってきた! #isucon - tagomorisのメモ置き場 #isucon 2013で優勝しました - すぎゃーんメモ 最終的なコードや設定などはこちらのリポジトリ 予選で学んだこと 予選のときは、開始直後からアプリケーションをみて明らかに重そうなところから手をつけていって、序盤からスコア

    fukumura
    fukumura 2013/11/14
  • Plackを使ってApacheナシでNagiosをインストールする方法 - blog.nomadscafe.jp

    Plack上でPHP(php-cgi)を動かすモジュール、Plack::App::PHPCGIと任意のCGIも動かせるPlack::App::CGIBinを使ってApacheナシでNagiosをインストールする方法 まず、php-cgiをインストールする。CentOSの場合、php(53)?-cliというパッケージがあるのでそれを使います $ sudo yum install php53-cli #centos5。centos6だとphp-cli 次にnagiosを動かすユーザを作成します $ sudo /usr/sbin/adduser nagios nagios体とpluginをダウンロードしていれます。その際にApacheの設定はインストールしません $ wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagio

  • ImageMagickとOpenMPの件 - blog.nomadscafe.jp

    PerlMagick が OpenMP 有効だと高負荷になる件 :: drk7jp」の件 どうやら、Perlに限らずマルチプロセスでOpenMPが有効なImageMagickを動かすとパフォーマンスが悪くなるようです。 Enabling OpenMP for most algorithms creates 8 threads (1 per core). If your process creates 8 threads that’s a total of 64 threads and that is a whole lot of contention and possible misuse of your processor cache. 「ImageMagick • View topic - Multi Process Contention?」より ということで、small_light

    fukumura
    fukumura 2011/12/29
    こういう工夫でサーバー台数激減させることができるエンジニアはすごいかっこいい。
  • チート対策とhttp_loadに仕掛けた罠の話 #isucon - blog.nomadscafe.jp

    完全に文化祭疲れで昼寝3時間ぐらいしてしまいましたが、懇親会で聞かせて頂いた話やblogやtwitterをみる限り好評だったようで、うれしく思っています。ISUCONに参加して頂いた方、社内で協力して頂いた方ありがとうございました いくつか至らぬ点がありますが、明日以降に公式にフォローさせて頂きたいと思っています。 さて、既に公開されているので見た方は多いと思いますが、今回ISUCONで使ったベンチマークツールは大きく分けて次の3つのツールに分かれています。 (1) 1post/secでコメントを投稿し、1秒後にコメントをしたページと、インデックスおよび適当な記事のDOMチェックを行う node.js (2) http_load + patch (3) css/js/imageのMD5値を検証する perl script 最終的な順位はhttp_loadが行ったリクエスト数で決まるのでもし

    fukumura
    fukumura 2011/08/29
  • memcached-1.4.7-rc1でmixiの大規模障害の原因となったmemcachedの不具合が全て解消されました - blog.nomadscafe.jp

    こちらとこちらのエントリーの続き memcached 1.4.6でmixiの障害の原因となったaccept_new_connsがスレッドセーフじゃない件は修正されているはずだったのですが、検証したところ別のスレッド競合による不具合が発生し、Bugは全て解消されてはいませんでした。 この件についてmixiたんぽぽGの森さんと調査していたところ、memcachedのcommiterにtwitter上で補足され、つたない英語で報告をあげていたら1.4.7-rc1で修正されたのでその報告。 memcached 1.4.6での不具合再現方法 まず、1.4.6で不具合を再現させる方法について。mixiのエンジニアブログと同じように、memcachedは次のオプションで起動し、 $ ./memcached -U 0 -u nobody -p 11222 -t 4 -m 16000 -C -c 1000

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

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

  • 今こそ見直すApacheの設定 - blog.nomadscafe.jp

    nginxやvarnishなどがアツいですが、Apacheもまだまだ実績や安定性から採用されていると思います。ここではデフォルトとは異なる値に変更するサーバ設定を中心に、パフォーマンス改善、安全性向上のためのApacheの設定を紹介します。 mpmの確認 > /path/to/bin/httpd -V Server version: Apache/2.2.19 (Unix) Server built: Jun 23 2011 17:13:13 Server's Module Magic Number: 20051115:28 Server loaded: APR 1.4.5, APR-Util 1.3.12 Compiled using: APR 1.4.5, APR-Util 1.3.12 Architecture: 64-bit Server MPM: Worker PreforkやW

    fukumura
    fukumura 2011/07/07
  • WWW::GoogleAnalytics::Mobileというモジュールを書いた - blog.nomadscafe.jp

    JavaScriptが使いにくい携帯などの環境でGoogle Anlyticsを利用する場合は、通常このサイトで配布される1x1の画像を吐き出すサーバサイドのビーコンスクリプトを設置し、 Webサイドからリンクを張りますが、このサーバサイドのスクリプトのうちPerlのコードはCGI以外では実行しづらいモノなので、PSGIにアプリケーションにしてCPANにリリースしました。 加えて、タイムアウトの制御が細かくできるようLWPをFurlにし、勝手にビーコンが他人に利用されないようchecksumを追加しています。また、PSGIアプリケーションで利用できるURL生成用のクライアントライブラリもつくりました。 使い方。まずサーバサイド。 use WWW::GoogleAnalytics::Mobile::PSGI; use Plack::Builder; builder { mount "/ga"

    fukumura
    fukumura 2011/03/22
    かっこいい。
  • 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の中継を見ていた息子

  • [gihyo.jp連載] 最終回 memcachedを快適に利用するTips集 - blog.nomadscafe.jp

    第三回の紹介をしない間に、連載「memcachedの活用と運用 実践編」の最終回が公開されました。最終回は、memcachedを多く運用してきた経験から得た小さめのTIPSをいくつか紹介する回となっています。 言語依存の話になるので詳しくは書きませんでしたが、記事中のincrementのサンプルで my $result = $memd->incr($key, @_); if ( defined $result && ! $result ) { ... } このように冗長にみえる条件文になっていますが、このdefinedと!$resultの意味はCache::Memcached::Fastのドキュメントを読むと解ります。 Return: unsigned integer, new value for the $key, or false for negative server reply,

  • Plackアプリケーションのリソースチューニングに必須。Plack::Middleware::ServerStatus::LIteをリリースしました - blog.nomadscafe.jp

    以前「StarmanやStarletでmod_statusっぽい情報を得る簡易版Plack::Middleware::ServerStatus」で書いていたPlack::Middleware::ServerStatus::LIteをCPANにリリースしました。 http://search.cpan.org/dist/Plack-Middleware-ServerStatus-LIte/ 前回と大きく実装が異なっている箇所があります。1つはプロセスの状態を保持するためにParallel::Scoreboardを使うようになり、$0(PROGRAM_NAME)の書き換えを行わないようになったこと。2つ目はロケタッチを開発しているhideokiさんからの指摘で、アプリケーションが例外を起こしたときにステータスが戻らないという問題への対応をTry::Tinyを使って行っていることが大きな変更点です

    fukumura
    fukumura 2010/08/19
  • キャッシュを制御してサイトの高速化を実現するAapcheモジュールmod_expiresのPlack版をリリースしました - blog.nomadscafe.jp

    レスポンスヘッダにExpiresやCache-Controlを追加することで、ブラウザのキャッシュを有効活用し、ダウンロードの時間をなくす事でウェブの高速化を実現できます。またサーバ側にとってもリクエスト数を減らす事ができ、負荷の削減にもなります ApacheにはExpiresやCache-Controlを付加するmod_expiresというモジュールがありますが、Plackにはまだなかったので作ってみました。VarnishのようにWebサーバ機能を持たないリバースプロキシを使う場合には、便利なんじゃないかなぁと思います CPANにリリース済みです http://search.cpan.org/dist/Plack-Middleware-Expires/ 使い方 builder { enable 'Expires', content_type => [ 'text/css', 'appli

  • 株式会社ミクシィを退職しました - blog.nomadscafe.jp

    昨日tweetした通り、株式会社ミクシィを退職しました。正確には今月末までとなり、今は少ない有給消化期間です。次の会社は既に決まっていて、6月1日から新しい会社となります ミクシィにはちょうど4年間在籍しました。その間mixiはPVにして10倍以上という驚異的な成長をし、会社としてのミクシィも上場をするなどさまざまな経験をさせて頂きました。 自分だけでやったことではなく、もちろん他のエンジニアの協力のもとで行ったことですが、4年間の間に自分のミクシィでやっていたことをBlog等ですでに紹介したものを中心にいくつか書くと アプリケーションレベルでのDBのフェイルオーバ Apache modproxybalancerの導入 デプロイツールの作成 サーバ設定のバージョン管理化 Squid COSSの検証導入 プロフィール画像などSquid CARPを利用した分散構成対応 Nginxの検証 Var

    fukumura
    fukumura 2010/05/28
    お疲れ様でした。
  • アプリケーションがマルチスレッドでもマルチコア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

    fukumura
    fukumura 2010/02/01
  • 1