Suche senden
Hochladen
tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)
•
8 gefällt mir
•
3,364 views
Iwana Chan
Folgen
6/18クックパッドで行われたtokyo.vclでの発表資料です
Weniger lesen
Mehr lesen
Melden
Teilen
Melden
Teilen
1 von 36
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Varnishのログの眺め方
Varnishのログの眺め方
Iwana Chan
Varnish 4.0 Release Party in Tokyo発表資料
Varnish 4.0 Release Party in Tokyo発表資料
Iwana Chan
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
Iwana Chan
VarnishではじめるESI
VarnishではじめるESI
Iwana Chan
MongoDB2.2の新機能
MongoDB2.2の新機能
Shoken Fujisaki
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像
Sho Shimizu
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
OpenFlowをXenServerで試してみよう
OpenFlowをXenServerで試してみよう
Kimihiko Kitase
Empfohlen
Varnishのログの眺め方
Varnishのログの眺め方
Iwana Chan
Varnish 4.0 Release Party in Tokyo発表資料
Varnish 4.0 Release Party in Tokyo発表資料
Iwana Chan
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
Iwana Chan
VarnishではじめるESI
VarnishではじめるESI
Iwana Chan
MongoDB2.2の新機能
MongoDB2.2の新機能
Shoken Fujisaki
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像
Sho Shimizu
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
OpenFlowをXenServerで試してみよう
OpenFlowをXenServerで試してみよう
Kimihiko Kitase
serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?
Sho Hashimoto
V6 unix in okinawa
V6 unix in okinawa
magoroku Yamamoto
Kernel fcache-bug
Kernel fcache-bug
MITSUNARI Shigeo
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
博文 斉藤
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
akirahiguchi
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4
Ransui Iso
Reactive Extensions v2.0
Reactive Extensions v2.0
Yoshifumi Kawai
仮想記憶入門 BSD-4.3を例題に
仮想記憶入門 BSD-4.3を例題に
magoroku Yamamoto
CasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用Tips
Naoki Sega
Memory sanitizer
Memory sanitizer
MITSUNARI Shigeo
Casual Compression on MongoDB
Casual Compression on MongoDB
moai kids
Mongo dbのgridfsについて
Mongo dbのgridfsについて
Masahiro Saito
#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門
Takashi Takizawa
JVM-Reading-ConcurrentMarkSweep
JVM-Reading-ConcurrentMarkSweep
Minoru Nakamura
Kernel vm study_2_xv6_scheduler_part1_revised
Kernel vm study_2_xv6_scheduler_part1_revised
Toshiaki Nozawa
PaaSの作り方 Sqaleの場合
PaaSの作り方 Sqaleの場合
hiboma
CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したい
charsbar
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略
yoku0825
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
Yoshifumi Kawai
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
basicinc_dev
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
Masahiro Nagano
Webサーバのチューニング
Webサーバのチューニング
Yu Komiya
Weitere ähnliche Inhalte
Was ist angesagt?
serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?
Sho Hashimoto
V6 unix in okinawa
V6 unix in okinawa
magoroku Yamamoto
Kernel fcache-bug
Kernel fcache-bug
MITSUNARI Shigeo
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
博文 斉藤
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
akirahiguchi
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4
Ransui Iso
Reactive Extensions v2.0
Reactive Extensions v2.0
Yoshifumi Kawai
仮想記憶入門 BSD-4.3を例題に
仮想記憶入門 BSD-4.3を例題に
magoroku Yamamoto
CasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用Tips
Naoki Sega
Memory sanitizer
Memory sanitizer
MITSUNARI Shigeo
Casual Compression on MongoDB
Casual Compression on MongoDB
moai kids
Mongo dbのgridfsについて
Mongo dbのgridfsについて
Masahiro Saito
#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門
Takashi Takizawa
JVM-Reading-ConcurrentMarkSweep
JVM-Reading-ConcurrentMarkSweep
Minoru Nakamura
Kernel vm study_2_xv6_scheduler_part1_revised
Kernel vm study_2_xv6_scheduler_part1_revised
Toshiaki Nozawa
PaaSの作り方 Sqaleの場合
PaaSの作り方 Sqaleの場合
hiboma
CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したい
charsbar
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略
yoku0825
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
Yoshifumi Kawai
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
basicinc_dev
Was ist angesagt?
(20)
serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?
V6 unix in okinawa
V6 unix in okinawa
Kernel fcache-bug
Kernel fcache-bug
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4
Reactive Extensions v2.0
Reactive Extensions v2.0
仮想記憶入門 BSD-4.3を例題に
仮想記憶入門 BSD-4.3を例題に
CasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用Tips
Memory sanitizer
Memory sanitizer
Casual Compression on MongoDB
Casual Compression on MongoDB
Mongo dbのgridfsについて
Mongo dbのgridfsについて
#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門
JVM-Reading-ConcurrentMarkSweep
JVM-Reading-ConcurrentMarkSweep
Kernel vm study_2_xv6_scheduler_part1_revised
Kernel vm study_2_xv6_scheduler_part1_revised
PaaSの作り方 Sqaleの場合
PaaSの作り方 Sqaleの場合
CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したい
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
Ähnlich wie tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
Masahiro Nagano
Webサーバのチューニング
Webサーバのチューニング
Yu Komiya
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
20180706_VxRailCC_ワークショップ編_NW
20180706_VxRailCC_ワークショップ編_NW
VxRail ChampionClub
x86とコンテキストスイッチ
x86とコンテキストスイッチ
Masami Ichikawa
Reactive Extensionsで非同期処理を簡単に
Reactive Extensionsで非同期処理を簡単に
Yoshifumi Kawai
分散メモリ環境におけるシェルスクリプトの高速化手法の提案
分散メモリ環境におけるシェルスクリプトの高速化手法の提案
Keisuke Umeno
Tottoruby 20110903
Tottoruby 20110903
Takashi SAKAGUCHI
Apache Torqueについて
Apache Torqueについて
tako pons
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
Preferred Networks
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
EchoyaGinhanazeSu_inoka.pptx
EchoyaGinhanazeSu_inoka.pptx
keink
Hive undocumented feature
Hive undocumented feature
tamtam180
2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理
2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理
keki3
20101220 pixiv tech_meeting
20101220 pixiv tech_meeting
semind
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努
Insight Technology, Inc.
SystemC Tutorial
SystemC Tutorial
kocha2012
Kink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based language
Taku Miyakawa
第8回KPF発表資料
第8回KPF発表資料
cryks
Ähnlich wie tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)
(20)
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
Webサーバのチューニング
Webサーバのチューニング
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
20180706_VxRailCC_ワークショップ編_NW
20180706_VxRailCC_ワークショップ編_NW
x86とコンテキストスイッチ
x86とコンテキストスイッチ
Reactive Extensionsで非同期処理を簡単に
Reactive Extensionsで非同期処理を簡単に
分散メモリ環境におけるシェルスクリプトの高速化手法の提案
分散メモリ環境におけるシェルスクリプトの高速化手法の提案
Tottoruby 20110903
Tottoruby 20110903
Apache Torqueについて
Apache Torqueについて
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
EchoyaGinhanazeSu_inoka.pptx
EchoyaGinhanazeSu_inoka.pptx
Hive undocumented feature
Hive undocumented feature
2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理
2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理
20101220 pixiv tech_meeting
20101220 pixiv tech_meeting
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努
SystemC Tutorial
SystemC Tutorial
Kink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based language
第8回KPF発表資料
第8回KPF発表資料
tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)
1.
VarnishCache3 <3
2011/06/18 いわなちゃん(@xcir)
2.
自己紹介 ●
いわなちゃん(@xcir) ● 携帯向けサイトやソーシャルゲームな会社で VarnishやらC#やらPHPやったり ● Smalllightを最近触ってます ● 六本木にいます ● 自炊派なのでクックパッドさんの キッチンが羨ましくて困ります 絡んでくれると喜びます!
3.
VarnishCache3
リリースおめでとうございます ● いろんな新機能が増えましたね ● ESIでのgzipのサポート ● よりスマートな拡張(VMOD) ● デフォルトパラメータがよくなった ● varnishncsaでカスタムログ形式が使える! ● ログ系コマンドで正規表現を利用した絞り込み ● vcl_init,vcl_finiの追加 ● Rangeリクエストのデフォルト有効 ● ストリームサポート ● 特定のストレージにオブジェクトを格納できる ● Etc...
4.
ESIでのgzipサポート ●
3.0以前ではgzipのオブジェクトを解凍できな かった ● つまりESIのように合成を行う場合はすべての要素 が 圧縮されていない必要があった ● 3.0以降ではgzip圧縮/解凍ができる ● 要素がgzipされていても解釈できる ● 格納時にgzip圧縮が可能 – なおESIだけのgzip対応ではないので他にも応用できます – 例えば今まではgzipしてるのとされていないのでそれぞ れキャッシュしてましたがそれが一つですみます
5.
6.
ESIでのgzipサポート ●
ただ効率的に使用するには 要素は圧縮されていないのが望ましいです ● 要素が圧縮されてる場合 – 解凍→ESIコード解釈→その後の処理 ● 要素が圧縮されてない場合 – ESIコード解釈→その後の処理 参考VCL sub vcl_miss { if (ESI処理を必要とするオブジェクト) { unset bereq.http.accept-encoding; } } sub vcl_fetch { if (ESI処理を必要とするオブジェクト) { set beresp.do_esi = true; set beresp.do_gzip = true; } }
7.
よりスマートな拡張(VMOD)
@hmskさんが 詳しく説明してくれると思いますので飛ばしま す!
8.
デフォルトパラメータが良くなった ●
パフォーマンスがよくなるように設定されてい ます ● すでに色々調整されている方はあまり関係ない かもしれません ● 面白いのがcc_commandが変わりました ● exec cc -fpic -shared -Wl,-x -o %o %s (3.0以前) ● exec $PTHREAD_CC $OCFLAGS $PTHREAD_CFLAGS -fpic -shared -Wl,-x -o %o %s (3.0) ● ここのコマンドはVCLのコンパイルに利用されるので色々調整す ると高負荷時に少し変わってきます
9.
varnishncsaでカスタムログが使える! ●
-Fオプションでカスタムログが指定できるよう になりました ● varnishncsa -F "%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-agent}i" ● ・・・が%{XX}iで指定できるヘッダが限られて います ● Referer,Host,X-Forwarded-For,User-agent ● 他にも%Dや%Tなどが使えないためApacheの記述そ のままとはいきませんのでちょっと注意が必要です
10.
ログ系コマンドで
正規表現を利用した絞り込み ● Varnishlog/ncsa/hist/sizesで利用可能です ● トランザクション中でマッチするものがあれば出力します ● Varnishlogの場合一致した行だけではなく そのトランザクション全部出力します ● -m Tag:Regexの形式です ● varnishlog -m "TxHeader:X-Cache: HIT" – この場合ヒットしたオブジェクトのログを出力します
11.
ログ系コマンドで 正規表現を利用した絞り込み
12.
vcl_init,vcl_finiの追加 ●
VCLがロードされたときにvcl_init ● VCLがアンロードされたときにvcl_fini ● β2で確認した呼び出されるパタンです ● ただ正式版でいくつか見たところ変わらずぽいです
13.
Rangeリクエストのデフォルト有効 ●
Rangeリクエストがデフォルトで有効になりま した (僕のような)携帯で動画を扱うサイトは嬉しいと思い ● ます
14.
ストリームサポート
ストリームOFF 1 2 Varnish バックエンド 5 3 4 1. ユーザからリクエスト 2. キャッシュがないのでバックエンドに問い合わせ 3. バックエンドがVarnishにレスポンス 4. バックエンドからのレスポンスを受けきるまで待つ 5. ユーザにレスポンス
15.
ストリームサポート
ストリームON 1 2 Varnish バックエンド 3’ 3 1. ユーザからリクエスト 2. キャッシュがないのでバックエンドに問い合わせ 3. バックエンドがVarnishにレスポンス 3'. バックエンドからのレスポンスを 順次ユーザにレスポンス
16.
ストリームサポート
ストリームOFF ストリームON
17.
ストリームサポート
制限事項 ● 同一ファイルを同時にストリームはできません ● 後続のストリームは保留されます
18.
特定のストレージにオブジェクトを格納できる ●
まず起動時にストレージの名前が指定できるよ うになりました ● -s [ユニーク名=]ストレージタイプ[,opt] – -s filestorage=file,/tmp/0,1G – -s persistentstorage=persistent,/tmp/1,1G – -s memorystorage=malloc,1G ● そして付けた名前を利用してどこに格納するか 指定できます ● set beresp.storage="persistentstorage";
19.
その他の変更点 ●
CLI接続してstatsができなくなりました ● VCLのチェックが厳密になりました ● 同じ名前のbackendがある ● Backend内のprobeのキーが重複 ● 同じ名前のACL ● ↑どれもVCLコンパイルの時に弾かれます ● VCLのUnusedエラーを無視する起動オプション追加 ● -p vcc_err_unref=off ● backendの定義はあるけど参照していない場合でも警告だけ でエラーは出ない
20.
こんなにかわった3.0! Let's enjoy Varnish
Cache3.0!!
21.
ちょっとまって! パラメータの削除があるよ
22.
起動パラメータの互換がない変更点
2.1→3.0 ● 削除された物 ● cache_vbe_conns ● err_ttl ● purge_dups ● 名前が変わった物 ● http_headers → http_max_hdr ● max_esi_includes → max_esi_depth ● overflow_max → que_max
23.
ちょっとまって! 結構VCL記述変わってるよ
24.
VCL記述の変更点
2.1→3.0 ● (obj | beresp).cacheableの廃止 ● ESIを使うときの指定方法 ● vcl_fetchでのreturn(pass)が変更 ● req.hash += value;の記述変更 ● 文字列の結合の仕方が変わった(!) ● LogメソッドがVMODに移動したよ ● purge()がban()になったよ ● 文字列中の%エスケープがなくなったよ
25.
●
(obj | beresp).cacheableの廃止 ● Obj.cacheableとberesp.cacheableはなくなりました ● キャッシュするかどうかは以下のパラメータから判断 ● beresp.ttl – キャッシュ時間 ● beresp.grace – キャッシュが切れたときの猶予期間
26.
ESIを使うときの指定方法
3.0以前 3.0以降 sub vcl_fetch { sub vcl_fetch { if (req.url == "/test.html") { if (req.url == "/test.html") { esi; set beresp.do_esi = true; set obj.ttl = 24 h; set obj.ttl = 24 h; } elseif (req.url == "/cgi-bin/date.cgi") { } elseif (req.url == "/cgi-bin/date.cgi") { set obj.ttl = 1m; set obj.ttl = 1m; } } } }
27.
vcl_fetchでのreturn(pass)が変更
3.0以前 3.0以降 sub vcl_fetch { sub vcl_fetch { return(pass); return(hit_for_pass); } } vcl_fetchだけで他の箇所は変更ありません
28.
req.hash += value;の記述変更
3.0以前 3.0以降 req.hash += value; hash_data(value);
29.
文字列の結合の仕方が変わった
(!) 3.0以前 3.0以降 req.url"AAA" req.url+"AAA" +演算子で結合するようになりました
30.
LogメソッドがVMODに移動したよ
3.0以前 3.0以降 sub vcl_recv{ import std; log req.url; sub vcl_recv{ } std.log(req.url); } logメソッドはvmod_stdに移動しました
31.
purge()がban()になったよ
3.0以前 3.0以降 purge("req.http.host == " req.http.host ban("req.http.host == " + req.http.host + "&& req.url == " req.url); "&& req.url == "+ req.url);
32.
文字列中の%エスケープがなくなった
よ 3.0以前 3.0以降 入力 入力 log "AAABBB:%67%67%67%67%67%67%67%67"; std.log("AAABBB: %67%67%67%67%67%67%67%67"); 出力 出力 13 VCL_Log c AAABBB:gggggggg 12 VCL_Log c AAABBB: %67%67%67%67%67%67%67%67
33.
参考程度に2.0→2.1
のアップデート方法 ● 2.0→3.0に上げるときは両方やれば問題ないで す
34.
起動パラメータの互換がない変更点
2.0→2.1(参考) ● 削除された物 ● accept_fd_holdoff ● acceptor ● backend_http11 ● client_http11 ● obj_workspace ● purge_hash ● srcaddr_hash ● srcaddr_ttl
35.
VCL記述の変更点
2.0→2.1(参考) ● vcl_fetchでobj.*が使えなくなりました ● beresp.*に置換してください ● サブルーチン内でのアクションの取り扱い 2.1以前 2.1以降 sub vcl_recv { sub vcl_recv { if (req.request == "GET" && req.http.cookie) { if (req.request == "GET" && req.http.cookie) { lookup; return(lookup); } } } }
36.
あらためて Let's enjoy Varnish
Cache3.0!! ありがとうございました
Jetzt herunterladen