Varnish勉強会 #tokyovcl に行ってきた

June 21, 2011 - 雑記

IMAG0053

618(土)に開催されたVarnish勉強会 Tokyo.vcl : ATNDに行ってきました。 初のクックパッドさんオフィス訪問です。

Varnish3のリリースパーティーも兼ねての開催だったようで、ステッカーもいただいてしまいました。 インフラ屋じゃない上に、Varnish触ったのは前日の晩という超初心者だったので結構不安でしたが、 ビアバッシュを含め色々な話しが聞けた実りある良い勉強会でした。

主催の@hmskさんをはじめ登壇者の皆様、ならびにビアバッシュで交流してくださった皆様ありがとうございました。

雑感

  • Varnishは画像配信の事例が多い
  • HTTPサーバーの前だけじゃなくてSolrのような内部ネットワーク間の通信にも適用できる。
  • Varnish落ちたときにApacheの負荷を避けるためにSquidが使える。
  • 拡張次第でHTTPサーバーにもKVSにも化ける(やりすぎ注意?)。
  • クラウドでの運用はフロンティア。
  • 設定ファイルのvclはもはやプログラム
  • ESIの事例なかったけど使いにくいのかな?
  • とりあえず実戦投入して様子見ないとわからないことが多そう。
  • あ、どれだけ高速化したかについての言及がなかったような…

各発表メモ

スライドと、その丸写しみたいな感じのメモをペタペタ。

VarnishCache3.0新機能とVUPの仕方(@xcir)

* ESIでのgzip * ブロックが圧縮されているとESIできなかった(~2) * defaultパラメータが改善された * stream support * 別のストリームは待機させられる(?

イカ娘も終わったしVarnishでも使うか(@phji)

* [RAM8G Xeon 4core SSD256GB ] x 20servers * pixiv * nginx -> (consistent hash) -> quid -> nginx -> apache * lookupとかかないとキャッシュされないw

twitter検索(yats)でvarnish使ってみた(@PENGUINANA_)

  • API 7000M req/month
  • PV 150Mreq/month
  • varnish(vps) -> nginx[ webAPI -> varnish -> Solr ]
  • service : cache + failover
  • Solr: slaveのキャッシュクリアーが重いので、その前面にVarnishをおいている(ラウンドロビンとFailover)
  • autocomplete
    • キャッシュと相性よさそう

EC2とvarnishで画像配信(@mirakui)

* 失敗談 * TOFU * アップロード時ではなくオンデマンドでリサイズ * akamai(CDN)に7000RPSのうち、ELBには700RPSくる。60%受けるリクエストをキャッシュできればApache負荷軽減できるのでは? * という導入経緯(からの失敗 * 1st challenge * EC2(M2.XLARGE[17.1GB RAM] + EBS[100GB for swap]) * 300rps * 結果:オンメモリだけなら順調だけど、あふれてきてOSにSWAPさせたとたんLOADAVERAGEが爆発して死亡。 * 2nd challenge * EC2(M2.XLARGE[17.1GB RAM] + EBS[100GB for ext3]) * “file storage”を使っても結局メモリ容量が大量に必要 * ec2のxlargeインスタンスには、IO性能「標準」と「高」がある * 今回は「標準」を利用して失敗 * 「高」ならうまくいくかも * varnish3 * hash director * consistent hashingができるかも? * nginxいらずに複数varnish運用ができるかも?

Puppetでvarnishもsquidも面倒みる(@ar1)

  • ふつうはvarnishは落ちるのでLBつかって並列で運用
  • varnishおちるとWebサーバーが負荷かかってしまう
    • LB -> varnish -> squid -> apache
    • squidどうしでキャッシュを共有できるので、1つSquidおちてもWebサーバーにききにいかずにすむ。
  • puppet
    • 設定をらくにする
    • cacheのExpire
    • サーバーのぬきさし

楽天でvarnish(@spchidren)

  • L7 balancingがやりたくてVarnish導入
    • URLによってWebサーバーのグループを切り替えたい
  • akamai -> LB -> varnish(RAM24G[malloc18G/hitrate 75%] -> apache(+mod_thumb)
  • LBからVarnishを切り離すのはどうやる?
  • CDNやVarnishのcache clearをどうやるか
    • 画像登録されたときにMQに登録して、必要に応じて消す
    • CDNは常にExpireされない状態にしておける。
  • ImageMagicおもい
    • varnishにサムネイルをつくるしくみを組み込んでみれば?(FreeImage)
    • cc_commandでインクルードさせて、C言語でサムネイルつくるしくみをくみこむ
  • varnishのいくさき
    • nginxにも近いしredisにもちかづいてきてる
    • どこにいくんでしょ

TDDでVCL書いてデプロイ(@hmsk)

  • varnishtest
    • RSpecぽい書き方できる
    • xxx.vcltestファイルにケースを記述
  • vmod
    • vclの設定をC言語っぽく描ける
    • パージや圧縮、エラーなどに使える
    • モバイル端末のリストのチェックにもVCLから外出しできる

関連リンク