VarnishCache3.0のβ2がリリースされました。
バグフィックスだけではなくて少し新機能もあります。
Continue reading »
3.0beta1では結構VCLの記法が変更されています。
追加要素はまた別記事で書こうと思いますが下位互換性のない変更が結構ありますので纏めてみました。
Continue reading »
VarnishCache3.0のリリースノートでもあったとおりデフォルトパラメータのチューニング及び追加・削除・名前変更があります。
特筆すべき箇所はコメントを書いています。
Continue reading »
Varnish3.0のβ1がリリースされました。
Varnish Cache 3.0 beta 1
新機能がたくさん増えてますがまずはサマリから、詳しいのはあとで
Preliminary streaming support, both on miss and on pass.
miss,pass時にストリーミングをサポートしました。
今までミスヒットなどでVarnishに返却すべきオブジェクトがない場合バックエンドからVarnishに転送が終わるまでクライアント側には何も返却してきませんでした。
いわゆるストアアンドフォワードですね
ところがストリーミングを有効にするとカットスルーのような動作を行います。
受信したらそのままクライアントに返すイメージです。
そのためOSのISOイメージのような大きいファイルがミスヒットした場合でもレイテンシが少なくレスポンスを返却できます。
beresp.do_streamを有効にすると動作します。
ただ注意事項としてストリーミング中に他のクライアントは保留されます。
おそらくは同じファイルの場合だけだと思いますがそこまで詳しく書いてないのであとで検証したいと思います。
Compression and uncompression support, including stiching together compressed ESI fragments.
ESIでGZIPに対応しました。
Plugins (vmods)
プラグイン機能が出来ました(vmods)
あとで詳しく記事にします。
Much improved documentation.
ドキュメントを大幅に改善しました。
Better default values for parameters.
デフォルトのパラメータをより良い値に調整しました。
記事書きました→VarnishCache3.0beta1で変更されたパラメータ一覧
Varnishncsa now has custom log format support.
varnishncsaがカスタムログ形式に対応しました。
やっと対応しました!
-Fで指定可能です。
Varnishlog, varnishncsa and varnishhist can now filter out records that match multiple expressions.
varnishlog,varnishncsa,varnishhist(varnishsizesも)複数の条件でフィルタできるようになりました
-m tag:regexの形で今までひとつしか指定できなかった絞り込み条件を複数指定できるようになりました
ただ僕が試したところだと2つまでしかできなかったのでちょっと調べてみます(varnishlog)
他にもVCLの記述が結構変わってたりするので注意が必要です。
またSourceへのリンクが5/12現在404になっていますがファイル名が間違っているだけなので書き換えてください
(varnish-3.0-beta1.tar.gzがリンクされてるけどvarnish-3.0.0-beta1.tar.gz)
さらにそのままrpmbuildで失敗したのでspecファイルを以下のように修正する必要があります。
[root@LIP-APP-01 redhat]# diff varnish.spec.org varnish.spec 9c9 < Source0: %{name}-3.0-beta1.tar.gz --- > Source0: %{name}-3.0.0-beta1.tar.gz 75c75 < %setup -q -n varnish-3.0-beta1 --- > %setup -q -n varnish-3.0.0-beta1
かなり前から途中まではやっては飽きたりを繰り返していた
Varnish公式のWelcome to Varnish’s documentation!
の和訳ですが
チュートリアルに相当するUsing Varnishのところの和訳が終わってキリがいいのと
そういやブログで和訳してるの言ってなかった気がするので報告します。
Continue reading »
お久しぶりです。
さすがにたまには書かないと忘れ去られそうなのでちょっと小ネタでも
VCL中にインラインCで好きな処理を書くことができるのは以前記事でも取り上げましたが
世の中に溢れている様々なライブラリを利用するにはどうすればよいでしょうか?
今回は例としてlibmemcachedを利用して最後にアクセスされたURL(req.url)をmemcacheにストアするVCLを書いてみます。
qpstudy#05でまたまたVarnishのLTしてきました。
本当はVarnishとバージョンが偶然一致しているTrafficServerの話をしようとしていたのですが検証時間が取れなく結局また・・・という感じで
(今両方とも2.1.5です)
詳しい内容についてはきっと誰かがまとめてくれてると思うので僕の感想など
Varnish2.1.5がリリースされました
Varnish Cache 2.1.5
バグフィックスが主です
英語は苦手ですが簡単に訳してみました間違ってたらすいません
後で実際の動作は確認してみます
Two bugs relating to Content-Length and possible duplication of Content-Length headers have been resolved.
Content-Lengthが重複してしまう問題に関する二件のバグを修正しました
該当しそうなチケット duplicate Content-Length headers
Support for bourne-like “here”-documents in the command line interface, allowing <<__EOF__ and similar schemes.
bourneシェルっぽいヒアドキュメントをサポートしました。(<<__EOF__)
Fixed an issue with re-using connections after Chunked-Encoding.
Chunkedエンコード時の接続を再利用する問題を修正しました。
Fix a bug that would inflate the “lost header” count and could cause problems during heavy traffic over a single connection, typically seen by load testing.
一般的な負荷試験でよく行われる単一接続で大量トラフィックを流した際にlost headerカウントが実際の値より増えるバグに対処しました
Use the time of cache-insertion for “If-Modified-Since” requests if a “Last-Modified” header isn’t provided by the backend.
Last-Modifiedヘッダがバックエンドから提供されない場合、バックエンドに取得しに行った時刻をLast-Modifiedとして扱いIf-Modified-Sinceリクエストに対応するようにしました。
該当しそうなチケット Conditional GETs based on modification time are not honored if Last-Modified was not explicitly set
Merge multi-line Vary and Cache-Control headers from clients, which Google Chromium seem to split up.
Chromeで同じフィールドを複数行に分割してリクエストしてくる際に正しく解釈できない問題があったので(最初の行しかみなかった)
複数行にわたるVaryとCache-Controlはマージして扱うようにしました。
該当しそうなチケット VCL doesn’t account for duplicate headers with different content
Various build fixes and documentation improvements
ビルドが出来ない問題を修正し(よくチケットがあがってたSolarisとか?)、ドキュメントも改良しました。
Various bug fixes.
様々なバグフィックスを行いました
試験前なのにざくっと訳文みてくれた@W53SAありがとう!
東京きたら酒飲もうぜ
昨日Varnish2.1.4がリリースされました。
英語は苦手ですが簡単に訳してみました間違ってたらすいません
A bug in the binary heap layout caused inflated object counts, this has been fixed.
二分ヒープのレイアウトの問題でオブジェクトのカウントが溢れるバグを修正しました
→これかな? Changeset 5356
Much more comprehensive documentation.
ドキュメントが充実しました
→/usr/share/doc/にドキュメントが追加されるようになりました(varnish-docs-2.1.4-1.x86_64.rpm)
A DNS director that uses DNS lookups for choosing which backend to route requests to has been added.
DNSディレクターが追加されました
→詳しくは The DNS director
まだ動かしていないのであれですが
以下の場合有効そうです
- 多段で構築している
- ネットワークがきちんと整理されている
要は範囲指定でガッツリ設定できるのである程度の台数を使用している場合設定が楽になりそうです。
間違ってたらすいません。
The client director now uses the variable client.identity for choosing which backend to send a given request to.
セッション維持機能が使えますということです。
複数のサーバがバックエンドにある場合においてAサーバで処理して返したユーザは次に接続する際もAサーバにつなぐということだと思います。
間違ってたらすいません。
String representation of now, making it easier to add Expires headers
2010/10/24追記:やっと動作がわかりました
nowをstringに自動的にキャストするようになりました。
これにより例えばExpiresの返却が簡単になります
vcl_deliver内で
set resp.http.Expires = now;
と書いた場合、前のバージョンではVCLがコンパイル出来ませんでしたが、2.1.4では
Expires: Sat, 23 Oct 2010 18:36:55 GMT
と帰ってきます。
ただ残念なことに以下の記述はできません
set resp.http.Expires = now + 10s;
↓
[root@LIP-APP-01 etc]# varnishd -d -f /etc/varnish/default.vcl -C Message from VCC-compiler: Expected variable, string or semicolon (input Line 71 Pos 29) set resp.http.Expires = now + 10s ; ----------------------------#------
(訳THX:@W53SA)
Portability fixes for Solaris.
Solaris向けの修正があります。
Various bug fixes.
いろんなバグを修正
#
そういや少し気になったんですが
ここを見てたら最新版だけVarnish Cacheとなっていて
もしかしてVarnishブランドのほかソフトも出すのかな?とかかんぐってみたりw
あとRPMビルドするときにpython-sphinxが必要になってました
先日qpstudyでLTしてきた内容のうちVCLのデバッグについてのとこだけど抜き出してちょっと補足してwikiにまとめました。
LTのときは
varnishd -d -f [vclfile] -C
と言っていましたがよく考えたら-Cあってもなくてもいいんですよね・・・(Cコードを出すオプションなので)
僕はインラインCをよく使うのでいつもつけていたので癖になっていました
せっかくなのでおまけで修正起動スクリプトにconfigtestも追加しました
Varnishのinitスクリプト改造(graceful対応)