タグ

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

  • 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が出た際に僕

  • 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回アクセ

  • いろいろsmalllightを使って動的に画像をリサイズしてみる – cat /dev/random > /dev/null &

    small lightシリーズ [1] ライブドアのsmalllightを使って動的に画像をリサイズしてみる [2] いろいろsmalllightを使って動的に画像をリサイズしてみる [3] smalllightでのエンジンの選択の仕方 [4] smalllightでのエンジンの選択の仕方 (ヒントオプション追加) 先ほど書いた「ライブドアのsmalllightを使って動的に画像をリサイズしてみる」では とりあえず入れてみて、リサイズしてみた!といった感じでしたが 僕が触ってみてこうしたら楽だとかの設定例を上げてみます。 ケース1 拡張子混在で使う 例えばjpg,gif,pngと混在していた場合、わざわざ設定で以下のように書くのは馬鹿らしいです。 RewriteRule ^/thumb_1/(.*\.jpg)$ /small_light(dw=70,dh=70,cw=70,ch=70,e=

    いろいろsmalllightを使って動的に画像をリサイズしてみる – cat /dev/random > /dev/null &
  • 夏に出したVarnishCache入門をPDFで公開しました – cat /dev/random > /dev/null &

    夏コミで同人誌でだしたVarnishCache入門ですがPDFで公開します。 幾つか公開したかった理由はあったのですが、実際コミケまで足を運んで買っていただいた方にちょっと申し訳ないかなと 電子出版での有料配布も考えていたのですが 64P程度で大げさかなというのと、もう一ヶ月経って3.0.1も出たしいいかなと思い公開します。 内容的には初心者向けとなっていますので、そこまで高度な内容については記述していません。 なお3.0.1が公開されたためページ数が変わらない範囲で、その内容についても一部加筆しています。(fallback directorとか) Varnishを使ってみようと考えている方の参考になればと考えています。 PDFのダウンロード ちなみに、時間と印刷費の関係で書ききれなかった事がたくさんあるのですが(転記されないパラメータやら、varnishtestとか・・・) そういうこと

    夏に出したVarnishCache入門をPDFで公開しました – cat /dev/random > /dev/null &
  • 画像が404の時にデフォルトの画像を出す方法(restart) – cat /dev/random > /dev/null &

    Varnishはバックエンドが複数ある場合、そのうちひとつが死んでも残りのバックエンドを使うfailover機能がありますが バックエンドに画像が何もなかったときはどうなるでしょうか?通常の場合はそのまま404を返します。 しかし、画像が投稿されてから非同期でサムネを作成したり、何らかの画像処理を行ったりで一時的にデフォルトの画像を出したいことがあります。 いわばファイル版のfailoverみたいなもんですね。方法がありますので書いてみます。 通常varnishがファイルに対して存在するかしないかを判定できるのはvcl_fetchですが その段階からこのファイルをもう一回リクエストして!みたいなことはできません。 そこで利用するのがrestartです。 これを使うとvcl_pass,miss,hit,fetch,deliver,errorから再度vcl_recvへ処理を戻すことができます。

  • Tokyo.vclでVarnishCache3の新機能とVUPの仕方を話してきました – cat /dev/random > /dev/null &

    hmskさん主催の第一回のTokyo.vclでVarnishの話をしてきました。 5分~15分の長さでと言われたのでのんびりいっぱい喋れる! ・・・と思ったら詰め込みすぎて結構早口で聞き取りにくかったかもしれません。 申し訳ないです。 内容はVarnishCache3.0の新機能と2.1/2.0系からVUPするときの変更点についてです。 UST(5分あたりから喋ってます) あといくつか資料で補足したい点がありましたので・・・ 別にESI使わなくてもgzip対応の恩恵は受けられるよ! おもいっきりESIでgzipサポートとは書いていますが別にESIに限ったことではないのでESIを使わなくてもgzipは使えます。 スライド中には一行でしか書いてないのですが、 今まではVarnishではgzipの処理ができなかったので1つのオブジェクトに対してgzip・圧縮されてないコンテンツを持つ場合 両方を

  • varnishでのif-modified-sinceの無視のやりかた – cat /dev/random > /dev/null &

    HTTPでの要求でIMS(if-modified-since)というものがあります ようはこんな感じのやりとりです ブラウザ「今この日付でオブジェクトもってるんだけどこれって最新?使ってもいい?」 (If-Modified-Since: Sun,14 Feb 2010 03:01:19 GMT) サーバ「最新だからそれ使ってもいいよ」 (304 Not Modified) 普通であればまったく問題ないやり取りです ただトラフィックが非常に大きいサーバの場合深刻な問題になります さっきのやり取りをもうちょい具体的にかくと ブラウザ「今この日付でオブジェクトもってるんだけどこれって最新?使ってもいい?」 (If-Modified-Since: Sun,14 Feb 2010 03:01:19 GMT) サーバ「ちょっとまってね(HDDのファイルの更新日時を調べる・・・)最新だからそれ使ってもい

  • Varnishを再起動無しで設定を適用する方法(修正版) – cat /dev/random > /dev/null &

    昨日プロセスを強引にとる手法でやったところ もっといい方法があるよと@mikedaさんが教えてくれましたので修正しました 自前で作るRPMのvarnishのinit.dはこれでいこうかなーと /etc/init.d/varnish #! /bin/sh # # varnish Control the varnish HTTP accelerator # # chkconfig: - 90 10 # description: Varnish is a high-perfomance HTTP accelerator # processname: varnishd # config: /etc/sysconfig/varnish # pidfile: /var/run/varnish/varnishd.pid ### BEGIN INIT INFO # Provides: varnish #

  • 1