[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
SlideShare a Scribd company logo
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.2
Apache 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がorigin
  regex_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 0
CONFIG proxy.config.log.squid_log_enabled INT 1
traffic_line

管理ツール

ヒット率
$ sudo traffic_line -r proxy.node.cache_hit_ratio
0.182696

キャッシュの空き領域
$ sudo traffic_line -r proxy.node.cache.percent_free
0.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 は良いの?

More Related Content

Traffic Server を使ってみた