タグ

varnishに関するdannのブックマーク (49)

  • Varnishによる一貫性を考慮した積極的キャッシュ戦略実験 - でこてっくろぐ ねお

    この記事は、はてなエンジニアアドベントカレンダー2016の9日目の記事です。昨日は id:cockscomb による Swift 3 の Data とポインタ使いこなし術 - Hatena Developer Blogでした。今日はISUCON 6の予選問題とVarnishを組み合わせてみた話を書きます。 はじめに みなさんは今年の夏に行われたISUCON6には参加しましたか?私は参加しましたが予選落ちでした。また、最近、私は業務でVarnishというHTTPキャッシュサーバに触ることが多いです。 今回、ISUCON6が終わった後、Varnishで何ができるかの検証がてらISUCON6の予選問題で少しトリッキーな実装をした話を書きます。 実装の方針は以下のとおりです。 キャッシュに必要な実装以外は出来る限りアプリケーションには手を入れない 全てのリクエストをキャッシュサーバを通す 更新は即

    Varnishによる一貫性を考慮した積極的キャッシュ戦略実験 - でこてっくろぐ ねお
    dann
    dann 2016/12/11
  • Varnishのログにアクセスしてみよう! | GREE Engineering

    こんにちは、Service Reliabilityチームのいわなちゃん(@xcir)です。チーム名が読みづらいのでSRやSレアと呼ばれたりもしています。レアリティが上がるように頑張って行きたいと考えています。 前回は「Varnishでテストコードを書こう!」という記事を書いたので、今回はGREE Advent calendar 2013の17日目も兼ねてVarnish Cache(以下Varnish)のログを読んだり加工してみたりしようと思います。 また、使用したVersionは3.0.3です。 Varnishのログのしくみ Proxyでアクセスログを取得したいというのはよくあると思います。通常のミドルウェアでは設定ファイルで出力ファイル名を決めたりします。しかし、Varnish体(varnishd)の設定ではそのような項目はありません。 では、Varnishはログを出していないのか?と

    Varnishのログにアクセスしてみよう! | GREE Engineering
    dann
    dann 2015/10/10
  • [Varnish]gracefulにキャッシュしたい

    次の様なケースの Varnish の振る舞いを調べてみた キャッシュされていないコンテンツに同時にアクセスされた時(thundering herd problem) TTL 設定したキャッシュコンテンツが expire した時(grace mode) オリジンサーバが HTTP ステータス 500番台を返してきた時(saint mode) 構成 client – Varnish/3.0.4 – nginx/1.1.19 & php-fpm 通常のキャッシュの振る舞い Varnish を使うとコンテンツがキャッシュされることを確認。 確認方法 現在時刻を返すだけのページ sleep.php を用意。 意図的に処理時間がかかるよう sleep を挟む <?php sleep(5); echo date('Y/m/d H:i:s') . "\n"; ?> 未キャッシュ状態でアクセスすると現在時刻

    [Varnish]gracefulにキャッシュしたい
    dann
    dann 2013/12/19
  • VUG7で配信システムをマイグレーションした話と作ったツールの話をして来ました – cat /dev/random > /dev/null &

    6ヶ月ぐらい前の話になるんですがVarnish User Group7(VUG7)で発表してきました。 下書きは書いたものの発表後の燃え尽きと、時期逃したかなと放置していたのですが、先日VUG8もあったのでせっかくなので書きました。 資料はこれです。 話した内容は古い配信システムをマイグレーションした話とその過程で作った、使ったツールの紹介です。 会社のシステムなので細かいことは書けないのですが、所属している会社を考えて頂ければそれなりの規模だと想像していただけると思います。更にいうと単一ではなく複数のシステムの統合です。 また、スライドにも書いてあるとおりなのですが、マイグレーションはダウンタイムなしで最初の1台を入社後の一月以内で投入というスピード感で行われました。 どのようなマイグレーションでもそうだと思うのですが、今回私が特に気をつけて行ったのが以下です。 ・キャパシティプランニン

    dann
    dann 2013/12/18
  • Scaling Django to 8 Billion Page Views

    As we’re approaching 8 billion page views per month and 45k requests per second, we’ve learned a couple things about delivering comments to a lot of different people. Disqus is very well known for using Django for almost all of our web traffic, and that continues to be a thing today. As with any web framework, there are inherent trade-offs: rapid development vs performance, familiarity for new dev

  • Speculative Lock Elision in Varnish Cache

    This year we’ve seen quite an interesting announcement from Intel. Their Haswell processors are now on sale. Usually we haven’t cared much about what Intel releases as new features in CPUs don’t always impact the performance on server software that much. Haswell, on the other hand, now has a feature, Transactional memory, that is pretty cool and might actually influence Varnish's performance quite

  • Tweak m1.small - misc notes

    (2015-07: 以下の内容は古いです。現状では php5.5 以降の Zend OPcache、apcu、さらに php7、HHVM 等の動きがあります) m1.small instance をしゃぶり尽くす AWS って on demand 的な使い方をした場合の課金や、ストレージ課金は驚異的に安価だとおもいますが、常時稼働が必要な instance の CPU 課金は(デフレスパイラル下の日に於いては)微妙に割高感があります。 その中で、2番目に低価格な m1.small でどこまで逝けるか を試してみるつもりです。 m1.small は Xen の CPU cap (割り当てCPU時間の制御) されており、AmazonCPU を盗まれています。B) # mpstat 00:00:00 AM CPU %user %nice %sys %iowait %irq %soft %

  • Varnishでテストコードを書こう! | GREE Engineering

    はじめまして、サーバ基盤チームの田中祥平(@xcir)です。 最近入社しまして、チームではいわなちゃんと呼ばれています。よろしくお願いします。 入社してからGREEの配信システムをVarnish Cache(以下Varnish)に置き換える仕事をしていたのですが、少し前に問題なく山を超えました。 そこで今回利用したVarnishの特にテスト機能について紹介しようと思います。 なお、今回の説明に利用するVersionは3.0.3です。 Varnishとは VCLというドメイン固有言語をもち、キャッシュもできる高速リバースプロキシです。 if文が書けるので柔軟に記述しやすいという特徴があります。 たとえば/admin/以下に許可したIP以外からのアクセスは弾くと言ったことは以下のように記述できます。

    Varnishでテストコードを書こう! | GREE Engineering
    dann
    dann 2013/04/15
  • 第4回チューニンガソン(Tuningathon)で優勝してきた - @ijin

    3回目の参戦となる#tuningathonで@tnmtさんと共に優勝してきました。 やった事は相方のブログに書かれているので、補足。 開演前 朝起きると、やたらとアラートが飛んでいるので調べると、うるう秒のせいでサーバ達が高負荷状態に。 @tnmtさんも同じ原因で障害対応中で待ち合わせ時間には間に合わず、参加が危うい感じ。 自分の方はなんとか片付けて、ぎりぎり開演前に到着。 お題発表 前々からやって欲しかったRuby on Rails! で、Refinery CMSというブログのチューニング。 内心喜びました。 前半戦 作業開始前にはまず何よりもバックアップ。 いつでも環境を戻せるようにRailsのフォルダをコピーしてMySQLのdumpを取っておく。 速攻でrbenv + ruby-buildを入れて、rubyの最新バージョン(1.9.3-p194)をインストール。 ビルドの間、まずは環

    dann
    dann 2012/07/04
  • Varnishを使う際に覚えておきたいデフォルトの罠 – cat /dev/random > /dev/null &

    最近とある人が嵌っていて聞かれたので Varnishを使う上で覚えておきたいデフォルト設定の罠を説明したいと思います。 デフォルトのLISTENポートは6081、VCLでなく起動パラメータで設定する そのかたはbackendの設定をLISTENポートと勘違いしていました。 Varnishの設定は主に2つにわかれています 起動パラメータ VCL設定(default.vcl) 起動パラメータはキャッシュを保存するストレージのサイズを指定したり、保持するスレッド数や、ワークスペースのサイズ、LISTENポートを指定したりなどと 主に変更する場合はVarnish自体の再起動が必要などと即時に反映できないものが多いです。 (デフォルトのTTLなどもあり、必ずしも全てではない) そしてVCL設定はリクエストに対してVarnishがどのように振る舞うかを定義しています。 redhat系の場合起動パラメー

    Varnishを使う際に覚えておきたいデフォルトの罠 – cat /dev/random > /dev/null &
    dann
    dann 2012/05/30
  • How to hook VCL function at VMOD – cat /dev/random > /dev/null &

    VMOD processing want to before/after VCL function processing. But, I do not want to write extra line. How to do it? Can be realized by the replace the pointer to sp->vcl->XXXX_func (VCL_XXXX) Can be added to the processing by replacing pointer static vcl_func_f *vmod_redirect_Hook_vcl_error = NULL; static pthread_mutex_t vmod_redirect_mutex = PTHREAD_MUTEX_INITIALIZER; static unsigned hook_done =

  • Webサーバ勉強会#5でVarnishではじめるESIって発表してきました – cat /dev/random > /dev/null &

    oranieさんが主催しているWebサーバ勉強会という 全員何かしら発表するという勉強会でESIについて発表してきました。 ESIについては結構前にqpstudyでもLTしているのですが Varnishのバージョンも上がり、いろいろ使いやすくなったので、ここでもう一回とおもいこのテーマで発表しました。 Varnishの利点はやはりその柔軟な設定(VCL)にあると思うので その利点を生かして、単純に静的ファイルをキャッシュさせるだけではなく ESIのように複雑なキャッシュをさせるのもいいんじゃないかなと思っています。 また他の方の発表を聞いてfluentdはやっぱり使いたい!と思った所存です。 JSONにどうしてもなるのかなぁと思っていたのですがrawで収集できるようにしたよ!という発表もあり既存とも組み合わせしやすくこれはいいなと考えています。 Apacheについても2.4.1が出た際に僕

    dann
    dann 2012/03/31
  • Varnish のパフォーマンスチューニングについて | ちからの備忘録的日記

    Varnish の公式 wiki にパフォーマンスチューニングについてのドキュメントがありましたので、ご紹介です。 » Performance – Varnish Varnishi 設定 -p thread_pool_min=200 (default: 5) この設定値と利用可能なスレッドプール数(default: 2)をかけたスレッド数で、通常時のアクセスをさばけるように設定しておくとよい。 -p thread_pool_max=4000 (default 1000) 生成する最大スレッド数。OSとして使えるファイルディスクリプタ数にも注意しましょう。5000以上設定しても問題ないが、パフォーマンスがあがることはまれで、逆にファイルディスクリプタの問題に悩まされるリスクがある。 -p thread_pool_add_delay=2 (default: 20ms, default in m

    dann
    dann 2012/01/26
  • varnishのインラインCから共有ライブラリを使う方法(cc_command) – cat /dev/random > /dev/null &

    お久しぶりです。 さすがにたまには書かないと忘れ去られそうなのでちょっと小ネタでも VCL中にインラインCで好きな処理を書くことができるのは以前記事でも取り上げましたが 世の中に溢れている様々なライブラリを利用するにはどうすればよいでしょうか? 今回は例としてlibmemcachedを利用して最後にアクセスされたURL(req.url)をmemcacheにストアするVCLを書いてみます。 さてしかし、どうやってlibmemcachedを呼び出せばいいでしょうか? ここで今回の最大のポイントです。 cc_commandという起動パラメータを変更してあげると、共有ライブラリを呼び出すことが可能になります。 cc_commandはvarnishがvclをコンパイルして.soにする際に利用するコマンドになります。 デフォルトのcc_commandは exec cc -fpic -shared -W

    dann
    dann 2011/09/28
  • Varnishのログの眺め方

    Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli... Apache Hadoopに見るJavaミドルウェアのcompatibility (Open Developers Conference 2020 Online 発表資料) 2020年12月19日 株式会社NTTデータ 技術開発部 先進コンピューティング技術センタ 岩崎 正剛

    Varnishのログの眺め方
    dann
    dann 2011/06/22
  • 『varnishについて』

    みなさん、こんにちは。 2010年9月入社のUDAGAWAです。 今回は、reverse proxyのvarnishに関して記事を 書かせていただきます。 ■varnishとは 高性能HTTPアクセラレータです。 同じような機能を持ったsquidより10~20倍高速だということが 売りのひとつだそうです。 ■背景 Amebaの画像配信システムは、reverse proxyとして squid2.7 STABLEのCOSSを使ったシステムを利用しています。 squid2.7自体が古いバージョンなので、できればバージョンアップしたいところ なのですが、現状 squid3系からはcossが使用できないこともあり varnishを検証しておこうと考えたのがきっかけです。 ■テスト環境 CentOS5.5 Kernel 2.6.18-194.3.1.el5 Varnish 2.1.3 ■インストール

    『varnishについて』
    dann
    dann 2011/06/22
  • tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)

    2. 自己紹介 ● いわなちゃん(@xcir) ● 携帯向けサイトやソーシャルゲームな会社で VarnishやらC#やらPHPやったり ● Smalllightを最近触ってます ● 六木にいます ● 自炊派なのでクックパッドさんの キッチンが羨ましくて困ります 絡んでくれると喜びます! 3. VarnishCache3 リリースおめでとうございます ● いろんな新機能が増えましたね ● ESIでのgzipのサポート ● よりスマートな拡張(VMOD) ● デフォルトパラメータがよくなった ● varnishncsaでカスタムログ形式が使える! ● ログ系コマンドで正規表現を利用した絞り込み ● vcl_init,vcl_finiの追加 ● Rangeリクエストのデフォルト有効 ● ストリームサポート ● 特定のストレージにオブジェクトを格納できる ● Etc... 4. ESIでのgzi

    tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)
    dann
    dann 2011/06/20
  • 東京varnish勉強会(Tokyo.vcl)まとめ « blog.udzura.jp

    ざっくり、雰囲気と僕が興味を持った部分だけまとめています…。 see also togetter: http://togetter.com/li/151585 @xcir さん varnish 2.1 -> 3.0 の機能変更などがメインの話題 専門用語連発で出端挫かれ気味… varnish は、 ESI をサポートする ESI とは http://www.akamai.com/html/support/esi.html ウノウラボさんによるサンプル http://labs.unoh.net/2011/02/varnishesi.html @phji さん ピクシブ もともと Squid でキャッシュ、 NginX でディスパッチャを分けていたのだが、 varnish なら両方を兼ねられてうれしいのではないか? と まずは Squid を一機 varnish にして試してみた -> よくわ

    dann
    dann 2011/06/20
  • Varnish best practices « Kristian Lyngstol's Blog

    A while ago I wrote about common Varnish issues, and I think it’s time for an updated version. This time, I’ve decided to include a few somewhat uncommon issues that, if set, can be difficult to spot or track down. A sort of pitfall-avoidance, if you will. I’ll add a little summary with parameters and such at the end. 1. Run Varnish on a 64 bit operating system Varnish works on 32-bit, but was des

    dann
    dann 2011/06/05
  • Reverse Proxy Performance – Varnish vs. Squid (Part 2) « Deserialized

    In part one of this series I tested the raw throughput performance of Varnish and Squid.  My results are consistent with all the blogs and comments floating around the blogosphere – Varnish blows away Squid. Unfortunately, the first series of tests were somewhat uninformative.  Since they only tested the raw performance of serving cached content from memory, it did not mimic a real world scenario