タグ「Apache Traffic Server」が付けられているもの


改訂版:Apache Traffic Server 〜実運用に向けての設定

Apache のログとか眺めてると、 Apache Traffic Server (以下、 ATS )について取り上げたエントリーへのアクセスがそれなりにあるのだけど、4 年も前の内容だし、ATS 自身もバージョンが上がっていて、ちょっと現状とあってなさそうな感じもしたので、新しいエントリーを起こしておきます。
4 年前は、バージョンが 2.1.9 とか 3.0.0 が出たばかりだとかって時期ですから。

アップデート対象のエントリーは、以下の 3 本。

インストール

インストールの対象とするとは Debian なんですけど、 wheezy には含まれていたのに、 jessie では外されたようですね…。(詳しいパッケージ情報
jessieでも、wheezy-backports のでも sid のでもパッケージは使えるのだけど、jessie と sid を混在状態にすると、後々めんどくさいことになるので、今回は jessie に wheezy-backports のものをインストールすることにします。ちなみに、wheezy-backports は 5.0.1 、 sid は5.2.0 なので、より新しい物を使いたいのであれば sid のものを、ということになりますね。

/etc/apt/sources.list に、以下のような行を追加。

# wheezy-backports
deb http://ftp.jp.debian.org/debian/ wheezy-backports main non-free contrib

"aptitude update" でパッケージ情報を更新した後、"aptitude install trafficserver" と実行すればインストールが行われます。

# aptitude install trafficserver
以下の新規パッケージがインストールされます:
  libaio1{a} libtcl8.5{a} tcl8.5{a} trafficserver
更新: 0 個、新規インストール: 4 個、削除: 0 個、保留: 0 個。
5,383 k バイトのアーカイブを取得する必要があります。展開後に 14.7 M バイトのディスク領域が新たに消費されます。
先に進みますか? [Y/n/?]

内部からのアクセスもIPv6化(の続き)

6to4による接続とはいえ、IPv6ネットワークに繋がったのだから、いろろと試した見たのだけど

まぁ、IPv6アドレス直接指定や、IPv6オンリーのサイト(ipv6.sony.jpとか)が見れているので、問題はなさそうなんだけど、もう少し色々と調べてみましょうかね。

[From 内部からのアクセスもIPv6化 | Network - Soukaku's HENA-CHOKO Blog]

この状況のままでは、もったいないので、いろいろ試してみた。

Proxyを経由させてみる

仕事の関係で、Squid 3.1系を使えばIPv6サイトへのアクセス時にコンテンツキャッシュサーバとして使えるとのが解っていたんで、まずそれ経由でどうなるかを試してみた。
Squidは、IPv6ルータとして動作しているLinuxサーバで動かす。ディストリビューションによってインストールされるバージョンに違いがあるとは思うのだけど、少なくともDebianのsidでインストールされるSquid(3.1.16)は、IPv6がenableな状態でビルドされているので、何も考えずにインストールすれば、

Apache Traffic Server v3.0.0 をdebパッケージにしてみる

ここしばらく、内々では使い続けていたApache Traffic Serverですが、v3.0.0として、正式リリースされたようです。

14 June 2011 --FOREST HILL, MD--The Apache Software Foundation (ASF), the all-volunteer developers, stewards, and incubators of nearly 150 Open Source projects and initiatives, today announced Apache Traffic Server v3.0.0.

[From The Apache Software Foundation Announces Apache Traffic Server v3.0.0 : The Apache Software Foundation Blog]

Debianのパッケージとしては、まだ2.1.8-unstableだし、パッケージになるまでもう少しかかりそうなので、ソースを拾ってきて独自にdebパッケージを作ってみた。

まずは、作業したいサーバの/usr/local/srcあたりに、v3.0.0のソースをダウンロード。

# cd /usr/local/src/
# wget http://ftp.riken.jp/net/apache//trafficserver/trafficserver-3.0.0.tar.bz2
--2011-06-17 22:18:59--  http://ftp.riken.jp/net/apache//trafficserver/trafficserver-3.0.0.tar.bz2
ftp.riken.jp をDNSに問いあわせています... 134.160.38.1
ftp.riken.jp|134.160.38.1|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 2418416 (2.3M) [application/x-bzip2]
`trafficserver-3.0.0.tar.bz2' に保存中
100%[======================================================================================>] 2,418,416    337K/s 時間 7.0s
2011-06-17 22:19:06 (335 KB/s) - `trafficserver-3.0.0.tar.bz2' へ保存完了 [2418416/2418416]

Apache Traffic Server 〜1週間ほど動かしてみて

使い始めて、1週間弱経過したわけですが。>Apache Traffic Server
朧気ながら、Squidとの違いも見えてきたので、気がついたことをいくつかメモ的に、書きだしてみます。

少なくとも、体感的にはTraffic ServerのほうがSquidよりも心持ち速いかなぁ、という印象を受けています。
定量的な測定はしていないので、ほんとにどっちが速いのかはわかりませんが、多分マルチスレッド化されているか否か、という点での違いが大きそうです。

psコマンドでは、そのあたりが分かりにくいので、"pstree -Gc root"で取得したプロセスの状態を比較してみると一目瞭然。
squidは、

     ├─squid3───squid3─┬─diskd
     │                 └─unlinkd

と、psの結果とほぼ同じになりますが、Traffic Serverのほうは、

     ├─traffic_cop───traffic_manager─┬─traffic_server─┬─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                ├─{traffic_server}
     │                               │                └─{traffic_server}
     │                               ├─{traffic_manage}
     │                               ├─{traffic_manage}
     │                               ├─{traffic_manage}
     │                               ├─{traffic_manage}
     │                               ├─{traffic_manage}
     │                               ├─{traffic_manage}
     │                               ├─{traffic_manage}
     │                               └─{traffic_manage}

と細かいスレッドに分割されていることがわかります。
マルチスレッド化されていることで、マルチコア環境ではかなり威力を発揮するんじゃないかなぁ、という感じなのでテストしてみる価値がありそうです。

Apache Traffic Server 〜インストールから動作確認まで(CentOS編)

CentOS5.6(i386版)にTraffic Serverを入れてみたので、そちらも念の為にエントリー。

とりあえず、CentOS 5.6のamd64版に入れてみた場合。
こちらはソースからのインストールになるので、まずは次のパッケージをインストール。

Apache Traffic Server 〜とりあえずインストール - Soukaku's HENA-CHOKO Blog

まずは、インストールのおさらい

すでにサラッとは書いておいたんだけど、改めて書いておく。
念のため、"yum update"で最新状態にした上で、不足しているかもしれないパッケージを追加でインストール。

# yum install gcc gcc-c++ openssl-devel tcl-devel expat-devel sqlite-devel pcre-devel libdbi-devel libtool db4-devel

ソースは、http://www.apache.org/dyn/closer.cgi/trafficserver/trafficserver-2.1.8-unstable.tar.bz2の中のサイトからダウンロードして、適当なディレクトリにアーカイブを置いたら、解凍。
#ちなみに、Debian sid向けのパッケージは2.1.5-unstable。

# cd /usr/local/src
# wget http://www.apache.org/dist//trafficserver/trafficserver-2.1.8-unstable.tar.bz2
# tar xvfj trafficserver-2.1.8-unstable.tar.bz2

回答したら、trafficserverのディレクトリに移動して、configure実行して、makemake install

# cd trafficserver-2.1.8-unstable
# ./configure --prefix=/usr/loca/ATS
# make all
# make install

configureのオプションでインストール先には"/usr/local/ATS"を指定しているので、上の例ではTraffic Serverに関するバイナリなどファイル一式は、そこにすべてインストールされます。
勿論、configureのオプションで、インストール先を細かく指定することも出来ますが。

Apache Traffic Server 〜実運用に向けての設定

さらに、前回からの続き。
前のエントリーと一部重複しているのは、端折ってしまった説明の補足ということで。

で、ここまでがホントに最低限の設定。実際に運用に供するにはログに関する設定が足りなかったりするので、その辺については別エントリーにて。

Apache Traffic Server 〜プロキシとして動かす為の必要最低限の設定 - Soukaku's HENA-CHOKO Blog

とにかく設定しておいたほうが良いもの

「とにかく動かしたい」ということであれば、最低でも次の3つのパラメータの値を変更する必要がある。

まず一つめ。このパラメータだけはテキストエディタなどで/etc/trafficserver/records.confgを直接編集する必要しないとダメ。

CONFIG proxy.config.cluster.ethernet_interface STRING eth0

複数のTraffic Serverを使ってクラスタ組む際にどのネットワークインタフェースをクラスタリングのために使うのかを指定するパラメータなのだけど、単体で動作させるにしても、これを実在するネットワークインターフェースにしておかないと、すべてのdaemonが起動してくれないので"eth0"などを指定。
変更後に、Traffic Severを再起動して

# ps axf | grep traffic
12797 pts/7    S+     0:00                      \_ grep traffic
 7547 ?        Ss     0:00 /usr/bin/traffic_cop
 7551 ?        Ssl    0:00  \_ /usr/bin/traffic_manager
 8608 ?        Sl     0:14      \_ /usr/bin/traffic_server -M -A,8:X

"traffic_cop"、"traffic_manager"、"traffic_server"の各daemonが起動していれば、これ以降のパラメータ変更と設定の反映は、"traffic_line"コマンドを利用して行えるようになります。

Apache Traffic Server 〜プロキシとして動かす為の必要最低限の設定

Apache Traffic Serverの続き。

細かい設定については、別のエントリーにて。
#実はまだ、ちゃんと動かせていない、という事情もあたりする・・・。

Apache Traffic Server 〜とりあえずインストール - Soukaku's HENA-CHOKO Blog

インストールが終わったのはいいんだけど、ちゃんと動いてくれなくて四苦八苦。
「とりあえず、基本に戻ろう」ということで、パッケージのインストールと同時にインストールされるドキュメントを漁ってみたら/usr/share/doc/trafficserver/CONFIGURATION.Debian.gzというのがあって、改めて読み直してみたら、色々と設定ファイルに手を入れないとProxyとして動いてくれないらしい。

まず、いじらないといけないのは、/etc/default/trafficserverの中の

TC_START=no

Apache Traffic Server 〜とりあえずインストール

Cache/Proxyソフトとして使われているsquidの代わりに使えそうなものとして、Apache Traffic Serverというものがあるので、ちょっといじってみているところ。

Traffic Server は 2003 年の Inktomi 買収時に入手したもので,主に HTTP/1.1 キャッシングプロキシサーバとして Yahoo! で稼動中であり,1日あたり 300億の Web オブジェクトと 400TB を越えるデータを処理している。TS は1台の 8コアCPUマシンで 35,000 RPS (Requests per Second,1秒あたりのリクエスト処理数) の処理能力を持っている。

InfoQ: Yahoo! が Traffic Server を Apache に提供

Yahoo!自身でも使っていて、パフォーマンスに関しては折り紙付きのようなので、いろいろ期待は出来そうな雰囲気なんだよね〜。

インストール:Debianの場合

Debianの場合は、sid向けにパッケージが出来ているので、sidを使っている人であれば

# aptitude install trafficserver

で、インストール完了。