32
Traffic Server を使ってみた 社内インフラ勉強会 2011/8/22 藤本和寿

Traffic Server を使ってみた

Embed Size (px)

DESCRIPTION

社内の勉強会の資料です

Citation preview

Page 1: Traffic Server を使ってみた

Traffic Server を使ってみた

社内インフラ勉強会2011/8/22 藤本和寿

Page 2: Traffic Server を使ってみた

Traffic Serverとは

Apache Traffic Server(略称 ATS, TS)

プロキシサーバーでSquidとかVarnishとかの仲間

日本語の文章が本当に少ないし、英語の文章も少ない

Page 3: Traffic Server を使ってみた

Traffic Serverとは

というか、公式のドキュメントしかない

3.0.1がreleaseされているのに3系のドキュメントがない気が…

Page 4: Traffic Server を使ってみた

目的

前の勉強会でVarnishを使ってみた。

Varnishはオンメモリのキャッシュだと使っているところがあるらしいけど、ディスクでキャッシュさせるような使い方をしようとして失敗している人がたくさんいる。

Traffic Server ならどうかな…

Page 5: Traffic Server を使ってみた

Varnishの微妙な点

前に検証したときは● 指定したキャッシュ容量を越えるとキャッシュを捨てた● リスタートをするとキャッシュを捨てた● 勝手にリスタートしたりキャッシュがたまらなくなったり

Page 6: Traffic Server を使ってみた

Squidの微妙な点

● rebuilding…があるので気軽にリスタートできない● 古い

Page 7: Traffic Server を使ってみた

環境

Debian 6.0.2Apache Traffic Server 3.0.1

Page 8: Traffic Server を使ってみた

起動方法

trafficserver {start|stop|restart}

Page 9: Traffic Server を使ってみた

設定

設定ファイルがいろいろある

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

Page 10: Traffic Server を使ってみた

設定

今回使ったのは

1. remap.config reverse proxyの設定

2. storage.config cacheする先の設定

3. records.configいろいろチューニングするためのメインの設定 例.メモリのサイズ

Page 11: Traffic Server を使ってみた

設定

他には

● cache.configキャッシュルールの設定

● parent.config多段キャッシュとかsibling

● ip_allow.configアクセス制御

Page 12: Traffic Server を使ってみた

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/ 

Page 13: Traffic Server を使ってみた

storage.config

キャッシュする先の設定

1. 128MB のキャッシュファイル指定ディレクトリにcache.dbをつくる/usr/local/var/trafficserver 128M

2. Raw deviceこう書けば、filesystemがない状態のdiskを指定できるディスクキャッシュが使われない/dev/sdb検証時はこれを使った

Page 14: Traffic Server を使ってみた

records.config

1. メモリを2G使うCONFIG proxy.config.cache.ram_cache.size INT 2147483648

Page 15: Traffic Server を使ってみた

使ってみた

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;}

Page 16: Traffic Server を使ってみた

使ってみた

Page 17: Traffic Server を使ってみた

munin

ないので作る

traffic_line -r hoge でいろいろパラメータが取れるのでSquidとの比較用に使えそうな値をグラフ化

Page 18: Traffic Server を使ってみた

使ってみた

リクエスト数

Page 19: Traffic Server を使ってみた

使ってみた

ヒット率

Page 20: Traffic Server を使ってみた

使ってみた

キャッシュ

Page 21: Traffic Server を使ってみた

使ってみた

restart してもキャッシュが消えない

rebuilding がない(時間がかからない?)

Page 22: Traffic Server を使ってみた

使ってみた

キャッシュを置くメモリの領域を2GBにしてみる

デフォルトでは指定したディスク1Gあたり1MB?でもアプリケーションを起動するともっと使う

Page 23: Traffic Server を使ってみた

使ってみた

Page 24: Traffic Server を使ってみた

使ってみた

iowait、変わらない

Page 25: Traffic Server を使ってみた

使ってみた

ディスクから読み出す量はちゃんと減ってる2KBのwriteがずっと走ってるのはよく分からない

Page 26: Traffic Server を使ってみた

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 -

Page 27: Traffic Server を使ってみた

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 -

Page 28: Traffic Server を使ってみた

log

Squid形式のログを出してかつ、asciiで出力する

./records.config:CONFIG proxy.config.log.squid_log_is_ascii INT 0CONFIG proxy.config.log.squid_log_enabled INT 1

Page 29: Traffic Server を使ってみた

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

Page 30: Traffic Server を使ってみた

traffic_line

hoge.configを編集したら、設定を反映$ sudo traffic_line -x

メモリのサイズとかrestartが必要な設定もある

Page 31: Traffic Server を使ってみた

まとめ

1. VarnishはSquidに置き換えるのに難しかった2. Traffic Serverは指定したサイズ以上のキャッシュを使おうとして

も挙動はおかしくならないし、restartしてもキャッシュは消えない3. SquidやVarnishのような優れた管理ツールはない

Page 32: Traffic Server を使ってみた

今後

● キャッシュを捨てるアルゴリズムの検証→メモリもディスクも

● 使用するメモリ領域の検証● ほんとうに raw device は良いの?