Traffic Server を使ってみた

10,478 views

Published on

社内の勉強会の資料です

Traffic Server を使ってみた

  1. 1. Traffic Server を使ってみた 社内インフラ勉強会 2011/8/22 藤本和寿
  2. 2. Traffic ServerとはApache Traffic Server(略称 ATS, TS)プロキシサーバーでSquidとかVarnishとかの仲間日本語の文章が本当に少ないし、英語の文章も少ない
  3. 3. Traffic Serverとはというか、公式のドキュメントしかない3.0.1がreleaseされているのに3系のドキュメントがない気が…
  4. 4. 目的前の勉強会でVarnishを使ってみた。Varnishはオンメモリのキャッシュだと使っているところがあるらしいけど、ディスクでキャッシュさせるような使い方をしようとして失敗している人がたくさんいる。Traffic Server ならどうかな…
  5. 5. Varnishの微妙な点前に検証したときは ● 指定したキャッシュ容量を越えるとキャッシュを捨てた ● リスタートをするとキャッシュを捨てた ● 勝手にリスタートしたりキャッシュがたまらなくなったり
  6. 6. Squidの微妙な点● rebuilding…があるので気軽にリスタートできない● 古い
  7. 7. 環境Debian 6.0.2Apache Traffic Server 3.0.1
  8. 8. 起動方法trafficserver {start|stop|restart}
  9. 9. 設定設定ファイルがいろいろある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
  10. 10. 設定今回使ったのは1. remap.config reverse proxyの設定2. storage.config cacheする先の設定3. records.config いろいろチューニングするためのメインの設定  例.メモリのサイズ
  11. 11. 設定他には● cache.config キャッシュルールの設定● parent.config 多段キャッシュとかsibling● ip_allow.config アクセス制御
  12. 12. remap.configreverse proxy の設定1. 全部 local の dispatcher に任せる map / http://localhost:10802. 自分でdispatcherみたいなのをするには… 192.168.0.1がorigin regex_map http://img(01|02).pixiv.net/ http://192.168.0.1:80/ 
  13. 13. storage.configキャッシュする先の設定1. 128MB のキャッシュファイル 指定ディレクトリにcache.dbをつくる /usr/local/var/trafficserver 128M2. Raw device こう書けば、filesystemがない状態のdiskを指定できる ディスクキャッシュが使われない /dev/sdb 検証時はこれを使った
  14. 14. records.config1. メモリを2G使う CONFIG proxy.config.cache.ram_cache.size INT 2147483648
  15. 15. 使ってみた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;}
  16. 16. 使ってみた
  17. 17. muninないので作るtraffic_line -r hoge でいろいろパラメータが取れるのでSquidとの比較用に使えそうな値をグラフ化
  18. 18. 使ってみた リクエスト数
  19. 19. 使ってみた ヒット率
  20. 20. 使ってみた キャッシュ
  21. 21. 使ってみたrestart してもキャッシュが消えないrebuilding がない(時間がかからない?)
  22. 22. 使ってみたキャッシュを置くメモリの領域を2GBにしてみるデフォルトでは指定したディスク1Gあたり1MB?でもアプリケーションを起動するともっと使う
  23. 23. 使ってみた
  24. 24. 使ってみた iowait、変わらない
  25. 25. 使ってみた ディスクから読み出す量はちゃんと減ってる 2KBのwriteがずっと走ってるのはよく分からない
  26. 26. logSquid形式のlogが出せる$ curl -H Host:img01.pixiv.net localhost:8080$ tail /usr/local/var/log/trafficserver/squid.log1312450988.955 1 127.0.0.1 TCP_MISS/200 300 GET http://localhost:1080/ - DIRECT/localhost text/html -
  27. 27. log$ tail -f squid.log1312450464.079 40 192.168.0.6 TCP_MISS/200 17412 GEThttp://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 -
  28. 28. logSquid形式のログを出してかつ、asciiで出力する./records.config:CONFIG proxy.config.log.squid_log_is_ascii INT 0CONFIG proxy.config.log.squid_log_enabled INT 1
  29. 29. traffic_line管理ツールヒット率$ sudo traffic_line -r proxy.node.cache_hit_ratio0.182696キャッシュの空き領域$ sudo traffic_line -r proxy.node.cache.percent_free0.967941http://trafficserver.apache.org/docs/v2/admin/cli.htm#1025718
  30. 30. traffic_linehoge.configを編集したら、設定を反映$ sudo traffic_line -xメモリのサイズとかrestartが必要な設定もある
  31. 31. まとめ1. VarnishはSquidに置き換えるのに難しかった2. Traffic Serverは指定したサイズ以上のキャッシュを使おうとして も挙動はおかしくならないし、restartしてもキャッシュは消えない3. SquidやVarnishのような優れた管理ツールはない
  32. 32. 今後● キャッシュを捨てるアルゴリズムの検証 →メモリもディスクも● 使用するメモリ領域の検証● ほんとうに raw device は良いの?

×