Upload
kazutoshi-fujimoto
View
8.183
Download
0
Embed Size (px)
DESCRIPTION
社内の勉強会の資料です
Citation preview
Traffic Server を使ってみた
社内インフラ勉強会2011/8/22 藤本和寿
Traffic Serverとは
Apache Traffic Server(略称 ATS, TS)
プロキシサーバーでSquidとかVarnishとかの仲間
日本語の文章が本当に少ないし、英語の文章も少ない
Traffic Serverとは
というか、公式のドキュメントしかない
3.0.1がreleaseされているのに3系のドキュメントがない気が…
目的
前の勉強会でVarnishを使ってみた。
Varnishはオンメモリのキャッシュだと使っているところがあるらしいけど、ディスクでキャッシュさせるような使い方をしようとして失敗している人がたくさんいる。
Traffic Server ならどうかな…
Varnishの微妙な点
前に検証したときは● 指定したキャッシュ容量を越えるとキャッシュを捨てた● リスタートをするとキャッシュを捨てた● 勝手にリスタートしたりキャッシュがたまらなくなったり
Squidの微妙な点
● rebuilding…があるので気軽にリスタートできない● 古い
環境
Debian 6.0.2Apache Traffic Server 3.0.1
起動方法
trafficserver {start|stop|restart}
設定
設定ファイルがいろいろある
bypass.config,cache.config,congestion.config,filter.config,hosting.config,icp.config,ip_allow.config,logs.config,log_hosts.config,logs_xml.config,parent.config,partition.config,records.config,remap.config,splitdns.config,ssl_multicert.config,storage.config,update.config
設定
今回使ったのは
1. remap.config reverse proxyの設定
2. storage.config cacheする先の設定
3. records.configいろいろチューニングするためのメインの設定 例.メモリのサイズ
設定
他には
● cache.configキャッシュルールの設定
● parent.config多段キャッシュとかsibling
● ip_allow.configアクセス制御
remap.config
reverse proxy の設定
1. 全部 local の dispatcher に任せるmap / http://localhost:1080
2. 自分でdispatcherみたいなのをするには…192.168.0.1がoriginregex_map http://img(01|02).pixiv.net/ http://192.168.0.1:80/
storage.config
キャッシュする先の設定
1. 128MB のキャッシュファイル指定ディレクトリにcache.dbをつくる/usr/local/var/trafficserver 128M
2. Raw deviceこう書けば、filesystemがない状態のdiskを指定できるディスクキャッシュが使われない/dev/sdb検証時はこれを使った
records.config
1. メモリを2G使うCONFIG proxy.config.cache.ram_cache.size INT 2147483648
使ってみた
192.168.0.15にTraffic Serverを設定画像のキャッシュとして、キャッシュクラスタに追加
画像フロントで設定upstream cache_cluster { consistent_hash $host$request_uri; server 192.168.0.11:8080 weight=100;… server 192.168.0.15:8080 weight=100;}
使ってみた
munin
ないので作る
traffic_line -r hoge でいろいろパラメータが取れるのでSquidとの比較用に使えそうな値をグラフ化
使ってみた
リクエスト数
使ってみた
ヒット率
使ってみた
キャッシュ
使ってみた
restart してもキャッシュが消えない
rebuilding がない(時間がかからない?)
使ってみた
キャッシュを置くメモリの領域を2GBにしてみる
デフォルトでは指定したディスク1Gあたり1MB?でもアプリケーションを起動するともっと使う
使ってみた
使ってみた
iowait、変わらない
使ってみた
ディスクから読み出す量はちゃんと減ってる2KBのwriteがずっと走ってるのはよく分からない
log
Squid形式のlogが出せる
$ curl -H 'Host:img01.pixiv.net' localhost:8080$ tail /usr/local/var/log/trafficserver/squid.log 1312450988.955 1 127.0.0.1 TCP_MISS/200 300 GET http://localhost:1080/ - DIRECT/localhost text/html -
log
$ tail -f squid.log 1312450464.079 40 192.168.0.6 TCP_MISS/200 17412 GET http://localhost:1080/img/arisuhideki/17932429_s.jpg - DIRECT/localhost image/jpeg -1312450464.531 0 192.168.0.6 TCP_HIT/200 20542 GET http://localhost:1080/img/sikiura/20761431_s.jpg - NONE/- image/jpeg -
log
Squid形式のログを出してかつ、asciiで出力する
./records.config:CONFIG proxy.config.log.squid_log_is_ascii INT 0CONFIG proxy.config.log.squid_log_enabled INT 1
traffic_line
管理ツール
ヒット率$ sudo traffic_line -r proxy.node.cache_hit_ratio0.182696
キャッシュの空き領域$ sudo traffic_line -r proxy.node.cache.percent_free0.967941
http://trafficserver.apache.org/docs/v2/admin/cli.htm#1025718
traffic_line
hoge.configを編集したら、設定を反映$ sudo traffic_line -x
メモリのサイズとかrestartが必要な設定もある
まとめ
1. VarnishはSquidに置き換えるのに難しかった2. Traffic Serverは指定したサイズ以上のキャッシュを使おうとして
も挙動はおかしくならないし、restartしてもキャッシュは消えない3. SquidやVarnishのような優れた管理ツールはない
今後
● キャッシュを捨てるアルゴリズムの検証→メモリもディスクも
● 使用するメモリ領域の検証● ほんとうに raw device は良いの?