タグ

ブックマーク / blog.xcir.net (11)

  • ESIの効果と気をつけた点 – cat /dev/random > /dev/null &

    このブログを見てる人だとご存知だとは思うのですが、Varnishはいろんな機能があるリバースプロキシです。 VCL、ヘルスチェック、強力なログ機能、そしてESIなどの機能が存在します。 ESI以外の記事は偶に見かけるのですがESIはあまりみないなーというのと 僕が入社するとVarnishがもれなくついてきます 遊びに行っただけでもVarnishが導入されるケースがあるようです — \いわなちゃんさん/ (@xcir) November 18, 2014 こんな乗りで去年の10月あたりから知り合いのサイト(一般的には大規模にあたるぐらいのPV)にESIを入れたので (特定できてもそっとしておいてください) その時に効果や注意したことをメモ的に残そうと思います。 まずESIって何かというとESIタグをページ中に挿入することでVarnish側でそのURLの内容で置換してくれる技術です。 詳しくは

    ESIの効果と気をつけた点 – cat /dev/random > /dev/null &
  • VarnishCache4.0.1が公開されました – cat /dev/random > /dev/null &

    Varnish4.0.1が公開されました。 ついでに公式サイトもデザインが新しくなって見やすくなりました。 バージョンアップ自体は主にBugfixで、4.0.0がリリースされて報告されていたバグが基的に修正されています。 幾つか重要度の高いbugfixがあるので4.0.0を入れた人は適用するのをおすすめします。 (僕が報告してたスレッドが開放されないなどのバグも修正されてました) また、今回も機能変更と追加がかなりされています。 動作に関わるところをについて抜粋して紹介します。 公式Changes ダウンロード 機能変更 Persistent storageがdeprecatedになりました ML見てたら不穏な動きが出てたのでどうなるかなーとおもってたんですがさっくり廃止予定になりました。 4.0.0になって多少使いやすくなったとおもったんですがパフォーマンスを維持しつつ整合性を確保する

    mirakui
    mirakui 2014/06/26
    クエリソートよさそう
  • Varnish 4.0 Release Party in Tokyoやります(v4rp tokyo) – cat /dev/random > /dev/null &

    先日Varnish4リリースされたよ―(^O^)/な記事を書いた際に、リリースパーティーどっかでやらないかなとVarnish3のリリースパーティーを行った白金台方面を眺めつつチラチラしていたところ、今回もクックパッド様で行うことになりました。 @mirakuiさん当にありがとうございます。 日程は4/29の19:00~からでGW中なのですが(平日だと思って夜にしていた) ピザでも摘みながらVarnish関連について話ができればなと考えています。 私のほうではVarnish4で変わったことやとあるサイトの番(知り合いのサイト)にVarnish4入れて嵌ったドキュメントに記載されていない事項などを話そうと思っています。 こんなスライドや こんなの(比較的見栄えするところをキャプチャしました)を今書いているところです。 またVarnish Softwareよりステッカーなどをいただけることに

    Varnish 4.0 Release Party in Tokyoやります(v4rp tokyo) – cat /dev/random > /dev/null &
    mirakui
    mirakui 2014/04/29
  • VarnishCache4.0.0が公開されました – cat /dev/random > /dev/null &

    今回もgifを撮ってみました。 取得に3秒かかるコードでTTLは10秒です。expire時の動きを見てみてください。 検証コード ■date.php <?php header('Cache-Control: max-age=20'); echo date("Y/m/d H:i:s")."\n"; sleep(3); ■vcl@3.0.5 sub vcl_fetch{ set beresp.do_stream = true; set beresp.ttl = 10s; set beresp.grace = 10m; } ■vcl@4.0.0 sub vcl_backend_response{ set beresp.do_stream = true; set beresp.ttl = 10s; set beresp.grace = 10m; } grace動作 3.0.5 4.0.0 3.0で

    VarnishCache4.0.0が公開されました – cat /dev/random > /dev/null &
    mirakui
    mirakui 2014/04/11
    待ってました(いわなちゃんさんを)
  • Varnishのストレージの話 – cat /dev/random > /dev/null &

    Varnishは様々なオブジェクトのキャッシュを行いますが その際にオブジェクトの保存を何処に行うかを選択することができます。 現在のバージョンでは malloc file persistent といった3つのストレージが存在しており、それぞれに特徴があります。 今回は特にpersistentに焦点をあてて解説します。 malloc メモリ上にストレージを置いているVarnishで一番高速なストレージです。 メモリ上に置くため当然のことながらサーバの移設での一時停止や再起動、 workerのpanicでの自動再起動などでキャッシュが吹き飛んでしまいます。 file ファイル上にストレージを置く、若干遅いストレージです。 ファイルと名前はついているものの永続化を目的としておらず、 ストレージへの書き込み時にflushしません。 読み書きはページ・バッファキャッシュ、つまりOSに任せており V

    mirakui
    mirakui 2012/11/14
    セグメント使い切ったら再起動やばい
  • Varnish3.0.3が公開されました – cat /dev/random > /dev/null &

    Varnish3.0.3が公開されました。 今回の変更は多くのバグフィックスとツール系の機能拡充とドキュメントの整備です。 公式リリースノート varnish-cache-3.0.3 バグフィックス ・ストリーミングと正規表現の評価においてクラッシュの要因となるバグを複数修正しました。 ・ESIとGZIPにおいて壊れたオブジェクトを返却するケースが存在する問題を修正しました。 ・ESIのremoveタグ内にHTMLのコメントがあるケースにおいて不適切な削除を行なっていたのを修正 ・ban lurkerのスリープする条件の変更(回収した際は設定値・回収しなかった場合は1秒) ・多くのクラッシュの要因になるバグの修正 ・その他いろいろ修正 ツール系の機能拡充 varnishstat ・json出力オプションの追加(-j) varnishtest ・resp.bodyでレスポンスボディの評価が可

  • smalllightでのエンジンの選択の仕方 (ヒントオプション追加) – cat /dev/random > /dev/null &

    small lightシリーズ [1] ライブドアのsmalllightを使って動的に画像をリサイズしてみる [2] いろいろsmalllightを使って動的に画像をリサイズしてみる [3] smalllightでのエンジンの選択の仕方 [4] smalllightでのエンジンの選択の仕方 (ヒントオプション追加) 先日の記事を書いた時点では気づいていなかったのですがsmalllightはJPEGのリサイズを高速化するパラメータがありました。 ヒントオプションというものです。早速再度有効にしてとってみました。 テスト画像 JPEG 6400×4800(17.7MB) -> 640×480 ヒントオプションなし dw=640,dh=480,cw=640,ch=480 ヒントオプションあり dw=640,dh=480,cw=640,ch=480,jpeghint=y imlib2(libjpe

  • smalllightでのエンジンの選択の仕方 – cat /dev/random > /dev/null &

    これだけ見ればimagemagickでもいいじゃん!ということになりますが 速さはどうなのでしょうか? 1024×768のjpgとpngを480×480に収まるサイズ(dw=480,dh=480,da=l)にリサイズした際のパフォーマンスです (gifはimagemagickを使ってください) ファイルサイズはjpgが202KBでPNGは69.6KBです smalllightはレスポンスヘッダに各処理にかかった時間を出力する機能がありこれを使い測定しました。(以下のような出力) X-SmallLight-Description: transfer=19ms, modify image=35ms (load=21ms, scale=7ms, save=6ms) transferはエンジンによって有意な差異が見られなかったのでmodifyをサマライズしましたl. 測定する際は、最初に5回アクセ

  • VarnishCache3.0beta2がリリースされました – cat /dev/random > /dev/null &

    VarnishCache3.0のβ2がリリースされました。 バグフィックスだけではなくて少し新機能もあります。 Varnish Cache 3.0 beta 2 documentation updates, particularly for the standard VMOD. vmod_stdのドキュメントを更新しました。 varnishncsa now ignores piped requests, since there’s generally too little information for us to do anything sensible with them. varnishncsaではpipe動作時にログが出ないようになりました。 the VCL compiler is now stricter in enforcing no duplication of backen

  • VarnishCache3.0beta1でのvclの記法変更 – cat /dev/random > /dev/null &

    3.0beta1では結構VCLの記法が変更されています。 追加要素はまた別記事で書こうと思いますが下位互換性のない変更が結構ありますので纏めてみました。 一応網羅してるんじゃないかと思うのですが抜けがあったら教えてもらえるとありがたいです。 ESI処理を行う際の指定方法 今まではesi;でしたがberesp.do_esi=true;に変わりました。 2.1.X sub vcl_fetch { if (req.url == "/test.html") { esi; /* ESI処理を行う */ set obj.ttl = 24 h; /* キャッシュ保持時間を設定(24時間) */ } elseif (req.url == "/cgi-bin/date.cgi") { set obj.ttl = 1m; /* includeするHTMLのキャッシュ保持時間を設定(1分) */ } } sub

  • Varnishでちょっと特殊な負荷の割り当て方(req.backend.healthy) – cat /dev/random > /dev/null &

    例えばVarnishで複数のバックエンドを持っていてどちらかが倒れても片系でも動くようにする場合 backend c01 { .host = "192.168.1.1"; .port = "80"; .probe = { .url = "/healthcheck.gif"; .timeout = 0.3 s; .window = 8; .threshold = 3; } } backend c02 { .host = "192.168.1.2"; .port = "80"; .probe = { .url = "/healthcheck.gif"; .timeout = 0.3 s; .window = 8; .threshold = 3; } } director defcache random { .retries = 5; { .backend = c01; .weight = 5;

  • 1