タグ

ブックマーク / hideden.hatenablog.com (6)

  • isuconお遊びチーム(事前社内β組)の設定あれこれ - hideden.hatenablog.com

    ISUCONに行ってきました。社内での事前βテストに参加して問題を知っていたので出場はせず。社内β参加を持ちかけられたときは、正直「めんどくせーなw」が素直な感想だったんですが、実際にやってみるとスコアがリアルタイムにわかる&ちょっとずつ自分のスコアが上がっていくってのは楽しくて、わりと気でチューニングしてしまいました。 さて、戦でも14時頃からお遊び用としてサーバー一式が解放されたので、大人げも無くそこで112500req/minをたたき出して参加者のやる気を削いだ(・・と懇親会で言われました。色々すいません!)構成について。 reverse proxy nginx(1.0.5) ngx_http_memcached + ngx_http_ssi_filter + ngx_http_scgi + ngx_http_upstream_keepalive(3rd party plugin

    isuconお遊びチーム(事前社内β組)の設定あれこれ - hideden.hatenablog.com
    kazeburo
    kazeburo 2011/08/28
    素晴らしいhack RT @hideden: #isucon で社内事前β組がお遊びチームサーバーを使って何をしてたかについて書いた。
  • squid 3.1をreverse proxyとして使ってる場合にoriginサーバー側のbasic認証を使う方法 - hideden.hatenablog.com

    [squid]---[apache:1]---[apache:2] という構成の[apache:2]で特定のHTTP methodの場合だけかけてあるBASIC認証がsquidを経由すると全然通れなくなって、[apache:1]でmod_rewriteの[P]使ってるからダメなのかと疑ってみたり、tcpdumpで調べて「なんでsquidの後ろでAuthorizationヘッダが消えるんだよ!!」とムカついてたりしたんだが、単純にsquidの設定が足りなかった。 cache_peer 10.0.0.x parent 8080 0 no-query login=PASS originserver "login=PASS" が必要らしい。普通にドキュメントに書いてあった。ドキュメントは隅々までちゃんと読むべき。 header_accessやrequest_header_accessはこの場合は全

    squid 3.1をreverse proxyとして使ってる場合にoriginサーバー側のbasic認証を使う方法 - hideden.hatenablog.com
  • nginx+squidで画像キャッシュサーバーの作り方 - hideden.hatenablog.com

    仕事で画像キャッシュサーバーを構築した時のメモ。大規模事例の設定例が検索してもあまり見つからなかったので同じような境遇の誰かの参考になれば。 ピーク時のトラフィックは数Gbps 画像総容量は数十TB バックエンドのstorageが複数種類 規模とアクセス量とアクセスされる画像の種類が多いので、squidでdisk cacheを使用するとCOSS等を使用してもdiskIOで詰まる為、全てon memory cache。cache容量を確保する為に必然的にcacheサーバーの台数も数十台。 1. squidをsibling構成で並列に並べる cache_peer 10.0.1.1 sibling 80 3130 no-query no-digest proxy-only cache_peer 10.0.1.2 sibling 80 3130 no-query no-digest proxy-o

    nginx+squidで画像キャッシュサーバーの作り方 - hideden.hatenablog.com
  • repcachedのメモ。 - hideden.hatenablog.com

    ある程度でかいサービスでDailyCount的な事をやらなきゃいけなくなって、DBに突っ込むとログのお掃除や負荷が大変だからmemcachedでやりたいけど、落ちたらウザいしなー・・・って考えてたらrepcachedを思い出した。YAPC2008でもmixiのkazeburoさんが紹介してたみたい。まぁ寝坊して聞けなかったんだけど。。。 で、ちょっと色々やってみたメモ。まださほど検証してない。 Installとかはほとんど公式のとおりに。memcachedと共存させるためにバイナリ名かえてみた。 ./configure --enable-replication --program-transform-name=s/memcached/repcached/ make make installで、起動。console2つ開いて-vつけて情報表示させつつ。 repcached -v -m 64

    repcachedのメモ。 - hideden.hatenablog.com
  • mod_perlで親プロセスとのCopy on Writeな共有メモリを増やす方法。 - hideden.hatenablog.com

    大量にアクセスがあってMaxClientを大きく設定したい場合、Apacheの1プロセスあたりのメモリを少なくするのが重要。当然アプリ側で大きなライブラリを読み込まずに画像の変換はGearmandにタスクとして投げたりとかの工夫するのも有効だが、fork元になるApacheの親プロセスと子プロセス間でできる限りCopy on Writeな共有メモリを増やすのも有効。 その辺の詳しい仕組み等の話はnaoyaさんがd:id:naoya:20080212:1202830671でしてるのでそこを参考に。linuxカーネルまわりの仕組みって楽しいよね。会社の案件ではFreeBSDサーバーも結構あるんだけどFreeBSDではどうなるのかは知らない。 で、社内にXenなテストサーバーがあるのでまっさらな環境で色々実験してみた。・・・過程を全部書こうとしたら長くなったので省略。地味にpsしたり/proc/

    mod_perlで親プロセスとのCopy on Writeな共有メモリを増やす方法。 - hideden.hatenablog.com
  • CGI.pmを継承してメソッドを追加したりしてみる。 - hideden.hatenablog.com

    文字コードの変換とかが面倒なのでCGI.pmを継承して、自動で文字コード変換をしてくれるモジュールを作ってみた。 Perlで他のモジュールを継承するのは簡単。 package CGI_JP_conv; use base qw(CGI); sub new { my $class = shift; my $self = $class->SUPER::new(@_); return $self; } 1;とすればCGIモジュールのすべてのメソッドが呼び出せる。ってことで、paramメソッドにJcodeでの文字コード変換を付けてみる。 package CGI_JP_conv; use base qw(CGI); use strict; use Jcode; sub new { my $class = shift; my $self = $class->SUPER::new(@_); return

    CGI.pmを継承してメソッドを追加したりしてみる。 - hideden.hatenablog.com
  • 1