前のトピック: LOAD - ロード ジェネレータ

次のトピック: MTA - メール送信エージェント

SQUID - SQUID プロキシ

最新バージョン: 2.0.2-1

SQUID: プロキシ サーバ

早見表

カタログ

システム

カテゴリ

その他 アプライアンス

ユーザ ボリューム

あり

最小 メモリ

96M

OS

Linux

制約

なし

質問/コメント

フォーラムで質問する

機能の概要

SQUID は、フォワード キャッシュまたはリバース キャッシュ プロキシ アプライアンスです。 SQUID はエージェントとして動作し、その in 端子上でクライアントから HTTP リクエストを受け付けて、出力端子に接続された適切なサーバにリクエストを渡します。 メモリおよびオンディスク キャッシュに返されたデータのコピーを格納します。 同じデータが複数回リクエストされると、キャッシュされたデータがクライアントに返されるため、アクセス速度が向上し、ソース サーバの負荷が減少します。

SQUID は、プロキシおよび Web アクセラレータという 2 つの操作モードをサポートします。

プロキシ モード

プロキシ モードでは、SQUID はフォワード キャッシュ プロキシとして動作します。通常は、1 つ以上のクライアントとインターネット間にインストールされます。 頻繁にリクエストされたデータのローカル コピーを維持し、適用可能なときにキャッシュされたコンテンツを返します。したがって、サービス リクエスト処理速度が向上し、アップストリームの帯域幅が軽減されます。

ウェブ アクセラレータ モード

Web アクセラレータ モードでは、SQUID はリバース キャッシュ プロキシとして動作します。通常は、1 つ以上の Web サーバの前にインストールされます。 Web サーバに向かうすべてのトラフィックは、SQUID を通ります。 SQUID は、頻繁にリクエストされたデータのローカル コピーを維持し、適用可能なときにキャッシュされたコンテンツを返します。したがって、応答時間が短縮されてバックエンド サーバの負荷が減少します。

境界

リソース

リソース

最小

最大

デフォルト

テスト

CPU

0.05

2

0.2

2

メモリ

96 MB

4 GB

256 MB

4 GB

帯域幅

1 Mbps

2 Gbps

250 Mbps

1.5 Gbps

SQUID のメモリ要件

SQUID が必要とするメモリ量は、キャッシュ ボリューム サイズおよび同時リクエスト数に依存します。 SQUID は、1 ギガバイトのキャッシュ ストレージのインデックスに、最大 10 メガバイトのメモリを使用します。 したがって、100 GB のキャッシュ ボリュームを使用するには、さらに 1 GB のメモリが必要です。 また、一定量のメモリがそれぞれの接続のために使用されます。 SQUID は、1000 の同時接続に、最大 20 メガバイトのメモリを使用します。 したがって、5000 の同時接続が予想される場合、SQUID のメモリを 100 MB 増やす必要があります。

重要: 十分なメモリが利用できない場合、SQUID は誤動作する場合があります。

端子

名前

方向

プロトコル

説明

in

in

HTTP

受信リクエストを受け付けます。

out

out

HTTP

トラフィックを送信先サーバへ送信し、応答を受信します。

log

out

CIFS

ログを格納するための CIFS ベースのネットワーク ファイル システムへのアクセス。 接続サーバは匿名ログインを許可し、share という名前の読み取り/書き込み共有が必要です。 使用しないとき、この端子は接続しておかなくてもかまいません。

mon

out

CCE

パフォーマンスとリソースの使用状況統計を送信します。 使用しないとき、この端子は接続しておかなくてもかまいません。

ユーザ ボリューム

名前

説明

cache

キャッシュ ファイル ストレージ用ボリューム。 このボリュームは必須です。 キャッシュ ボリュームの最小サイズは 100M です。

注:

squid ガイドによれば、キャッシュ ボリュームの約 25% はインデックスの格納に使用されるので、キャッシュ ボリュームは 25% 大きくなくてはなりません。 例: キャッシュが 900 MB のオブジェクトを格納する場合、キャッシュ ボリュームのサイズは 1200 MB 必要です(キャッシュしたオブジェクトの格納に 75% = 900 MB、インデックス ファイル用に 25% = 300 MB)。

一般プロパティ

名前

タイプ

説明

mode

文字列

動作モード。 有効な値は proxy または web_accelerator です。
proxy - SQUID はプロキシ モードで動作し、キャッシュ フォワード プロキシとして機能します。
web_accelerator - SQUID は Web アクセラレータ モードで動作し、キャッシュ リバース プロキシとして機能します。
デフォルト: web_accelerator

listen_port

整数

プロキシ モードの内部クライアントまたは web_accelerator モードの外部 Web サイト ユーザからリクエストを受け入れるポート。
デフォルト値: 80

hostname

文字列

エラー メッセージ内で使用するホスト名。
デフォルト: localhost

connect_timeout

整数

SQUID がリクエストされたサーバへの TCP 接続を待機する間のタイムアウト(秒)。 タイムアウトを超過すると、SQUID は、「接続タイムアウト」というエラー メッセージでクライアントに応答します。
デフォルト: 30

ロギング プロパティ

名前

タイプ

説明

log_enable

文字列

アクセス ログを有効化または無効化します。
デフォルト: no

log_filename

文字列

log 端子を介してアクセスされたファイル システムに関するアクセス ログのファイル名。 ファイル名にはパスを含めることができます。たとえば、値が access.log の場合、ログ ファイルは /mnt/log/access.log になり、値が /proxy_logs/squid1_access.log の場合、ログ ファイルは /mnt/log/proxy_logs/squid1_access.log になります。
デフォルト: access.log

log_format

文字列

アクセス ログのフォーマット。
ネイティブ - SQUID ネイティブ ログ フォーマットを使用します。
httpd - httpd ログ フォーマットを使用します。
デフォルト: ネイティブ

カスタム カウンタ

SQUID アプライアンスは mon 端子を介して以下のカスタム カウンタをレポートします。

SNMP カウンタ名

カウンタ名

説明

SQUID-MIB::cacheSysVMsize

SysVMsize

メモリ キャッシュ サイズ(KB)。

SQUID-MIB::cacheSysStorage

SysStorage

ディスク キャッシュ サイズ(KB)。

SQUID-MIB::cacheUptime

アップタイム

SQUID アップタイム(1/100 秒のタイム ティック)。

SQUID-MIB::cacheSysPageFaults

SysPageFaults

物理 I/O のページ フォールト。

SQUID-MIB::cacheSysNumReads

SysNumReads

HTTP I/O 読み取り数。

SQUID-MIB::cacheMemUsage

MemUsage

SQUID で使用される合計メモリ(KB)。

SQUID-MIB::cacheCpuTime

CpuTime

cpu 使用秒数。

SQUID-MIB::cacheCpuUsage

CpuUsage

CPU の使用率。

SQUID-MIB::cacheMaxResSize

MaxResSize

最大メモリ使用量(KB)。

SQUID-MIB::cacheNumObjCount

NumObjCount

キャッシュに格納されたオブジェクトの数。

SQUID-MIB::cacheCurrentUnlinkRequests

CurrentUnlinkRequests

unlinkd に指定されたリクエスト。

SQUID-MIB::cacheCurrentUnusedFDescrCnt

CurrentUnusedFDescrCnt

利用可能なファイル記述子の数。

SQUID-MIB::cacheCurrentResFileDescrCnt

CurrentResFileDescrCnt

予約済みファイル記述子の数。

SQUID-MIB::cacheCurrentFileDescrCnt

CurrentFileDescrCnt

使用中のファイル記述子の数。

SQUID-MIB::cacheCurrentFileDescrMax

CurrentFileDescrMax

使用中のファイル記述子の最高数。

SQUID-MIB::cacheProtoClientHttpRequests

ProtoClientHttpRequests

受信した HTTP リクエストの数。

SQUID-MIB::cacheHttpHits

HttpHits

キャッシュ HTTP ヒットの数。

SQUID-MIB::cacheHttpErrors

HttpErrors

キャッシュ HTTP エラーの数。

SQUID-MIB::cacheHttpInKb

HttpInKb

受信した HTTP トラフィック(KB)。

SQUID-MIB::cacheHttpOutKb

HttpOutKb

送信した HTTP トラフィック(KB)。

SQUID-MIB::cacheServerRequests

ServerRequests

キャッシュ サーバのクライアントからのリクエストの数。

SQUID-MIB::cacheServerErrors

ServerErrors

クライアント リクエストからのキャッシュ サーバのすべてのエラー

SQUID-MIB::cacheServerInKb

ServerInKb

サーバからの受信トラフィック(KB)。

SQUID-MIB::cacheServerOutKb

ServerOutKb

サーバへの送信トラフィック(KB)。

SQUID-MIB::cacheClients

クライアント

キャッシュ アクセス クライアントの数

SQUID-MIB::cacheHttpAllSvcTime.1

HttpAllSvcTime1

HTTP リクエストの処理(最後の 1 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheHttpAllSvcTime.5

HttpAllSvcTime5

HTTP リクエストの処理(最後の 5 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheHttpAllSvcTime.60

HttpAllSvcTime60

HTTP リクエストの処理(最後の 60 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheHttpMissSvcTime.1

HttpMissSvcTime1

キャッシュ ミスの処理(最後の 1 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheHttpMissSvcTime.5

HttpMissSvcTime5

キャッシュ ミスの処理(最後の 5 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheHttpMissSvcTime.60

HttpMissSvcTime60

キャッシュ ミスの処理(最後の 60 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheHttpNmSvcTime.1

HttpNmSvcTime1

コンテンツの変更なしでキャッシュ ヒットの処理(最後の 1 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheHttpNmSvcTime.5

HttpNmSvcTime5

コンテンツの変更なしでキャッシュ ヒットの処理(最後の 5 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheHttpNmSvcTime.60

HttpNmSvcTime60

コンテンツの変更なしでキャッシュ ヒットの処理(最後の 60 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheHttpHitSvcTime.1

HttpHitSvcTime1

キャッシュ ヒットの処理(最後の 1 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheHttpHitSvcTime.5

HttpHitSvcTime5

キャッシュ ヒットの処理(最後の 5 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheHttpHitSvcTime.60

HttpHitSvcTime60

キャッシュ ヒットの処理(最後の 60 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheDnsSvcTime.1

DnsSvcTime1

DNS リクエストの処理(最後の 1 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheDnsSvcTime.5

DnsSvcTime5

DNS リクエストの処理(最後の 5 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheDnsSvcTime.60

DnsSvcTime60

DNS リクエストの処理(最後の 5 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheRequestHitRatio.1

RequestHitRatio1

0~100 スケールの Request Hit Ratio(最後の 1 分間)(%)。

SQUID-MIB::cacheRequestHitRatio.5

RequestHitRatio5

0~100 スケールの Request Hit Ratio(5 分間)(%)。

SQUID-MIB::cacheRequestHitRatio.60

RequestHitRatio60

0~100 スケールの Request Hit Ratio(最後の 60 分間)(%)。

SQUID-MIB::cacheRequestByteRatio.1

RequestByteRatio1

0~100 スケールの Byte Hit Ratio(最後の 1 分間)(%)。

SQUID-MIB::cacheRequestByteRatio.5

RequestByteRatio5

0~100 スケールの Byte Hit Ratio(最後の 5 分間)(%)。

SQUID-MIB::cacheRequestByteRatio.60

RequestByteRatio60

0~100 スケールの Byte Hit Ratio(最後の 60 分間)(%)。

SQUID-MIB::cacheHttpNhSvcTime.1

HttpNhSvcTime1

コンテンツの更新ありのキャッシュ ヒットの処理(最後の 1 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheHttpNhSvcTime.5

HttpNhSvcTime5

コンテンツの更新ありのキャッシュ ヒットの処理(最後の 5 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheHttpNhSvcTime.60

HttpNhSvcTime60

コンテンツの更新ありのキャッシュ ヒットの処理(最後の 60 分間)にかかった CPU 時間(秒)。

SQUID-MIB::cacheIpEntries

IpEntries

IP キャッシュ エントリ。

SQUID-MIB::cacheIpRequests

IpRequests

IP キャッシュ リクエストの数。

SQUID-MIB::cacheIpHits

IpHits

IP キャッシュ ヒットの数。

SQUID-MIB::cacheIpPendingHits

IpPendingHits

IP キャッシュ保留ヒットの数。

SQUID-MIB::cacheIpNegativeHits

IpNegativeHits

IP のキャッシュの負のヒットの数。

SQUID-MIB::cacheIpMisses

IpMisses

IP キャッシュ ミスの数。

SQUID-MIB::cacheBlockingGetHostByName

BlockingGetHostByName

ブロックする gethostbyname リクエストの数。

SQUID-MIB::cacheAttemptReleaseLckEntries

AttemptReleaseLckEntries

ロックされた IP キャッシュ エントリの解放試行の数。

SQUID-MIB::cacheFqdnEntries

FqdnEntries

FQDN キャッシュ エントリ。

SQUID-MIB::cacheFqdnRequests

FqdnRequests

FQDN キャッシュ リクエストの数。

SQUID-MIB::cacheFqdnHits

FqdnHits

FQDN キャッシュ ヒットの数。

SQUID-MIB::cacheFqdnPendingHits

FqdnPendingHits

FQDN キャッシュ保留ヒットの数。

SQUID-MIB::cacheFqdnNegativeHits

FqdnNegativeHits

FQDN のキャッシュの負のヒットの数。

SQUID-MIB::cacheFqdnMisses

FqdnMisses

FQDN キャッシュ ミスの数。

SQUID-MIB::cacheBlockingGetHostByAddr

BlockingGetHostByAddr

ブロックする gethostbyaddr リクエストの数。

SQUID-MIB::cacheDnsRequests

DnsRequests

外部 dnsserver リクエストの数。

SQUID-MIB::cacheDnsReplies

DnsReplies

外部 dnsserver 応答の数。

SQUID-MIB::cacheDnsNumberServers

DnsNumberServers

外部 dnsserver プロセスの数。

SQUID-MIB::cachePeerRtt

PeerRtt

ピアへの最後の既知ラウンド トリップ タイム(ms)。

エラー メッセージ

アプリケーションの起動に失敗した場合、以下の内容のエラーがシステム ログにログ記録される場合があります。

エラー メッセージ

説明

キャッシュ ボリュームにアクセスできません。

アプライアンスはキャッシュ ボリュームにアクセスできません。ファイル システムが壊れている可能性があります。

アクセス ログは有効ですが、log 端子は接続されていません。

log 端子は接続されていませんが、log_enable は「yes」に設定されています。

SQUID を実行できませんでした。

アプライアンスを起動できません。 考えられる理由はユーザ定義の設定にエラーがあることです。

パフォーマンス

以下の表は、ログ記録を無効にしたときに得られるリクエスト数/秒(rps)単位のベンチマーク結果を示しています。 ログ記録を有効にすると、SQUID のパフォーマンスは低下する場合があります。 ベンチマークは、Apache Web サーバ バージョン 2.0 および 2.2 でリリースされる Apache ベンチマーク ユーティリティで生成されました。 Apache ベンチマークの詳細情報は、Apache の Web サイトで参照してください。 次の設定がベンチマーク テストに使用されました。bw 500M mem=2G cpu=2。

キャッシュ ヒット

同時実行数

rps

1 クライアント

1500~1800 rps

10 クライアント

5800~6200 rps

100 クライアント

7400~7800 rps

500 クライアント

5300~5500 rps

1000 クライアント

5300~5500 rps

キャッシュ ミス

同時実行数

rps

1 クライアント

700~800 rps

10 クライアント

2000~2200 rps

100 クライアント

1900~2100 rps

500 クライアント

1800~2000 rps

1000 クライアント

1600~1800 rps

典型的な使用状況

Web アクセラレータ モード

SQUID は、すべての静的ドキュメントを提供することにより、AppServer への負荷を軽減するために使用されます。 注: Java アプリケーションが生成ドキュメントに Expires: HTTP ヘッダを設定した場合、SQUID はそれらが存続するかぎり対応します。

使用されるアプライアンスは次のとおりです。

プロパティ設定の例は次のとおりです。

プロパティ名

mode

web_accelerator

SQUID は Web アクセラレータ モードで動作し、キャッシュ リバース プロキシとして機能します。

listen_port

80

HTTP リクエスト用のデフォルト ポート。

hostname

www.host.com

エラー メッセージ内に使用されるホスト名

Web アクセラレータ モード: 多数の Web サーバを備えたアプリケーション

SQUID は多くの Web サーバを加速するために使用されます。 この例では、URLSW アプライアンスは url によって別の Web サーバにリクエストを配信します。 使用されるアプライアンスは次のとおりです。

SQUID のプロパティ設定の例は次のとおりです。

プロパティ名

mode

web_accelerator

SQUID は Web アクセラレータ モードで動作し、キャッシュ リバース プロキシとして機能します。

listen_port

80

HTTP リクエスト用のデフォルト ポート。

hostname

www.host1.com

エラー メッセージ内に使用されるホスト名

スイッチ設定は以下のとおりです。

プロパティ名

out1_type

hostname

out1_value

host1.com

host1.com へのリクエストは、server1 によって提供されます。

out2_type

hostname

out2_value

host2.com

host2.com へのリクエストは、server2 によって提供されます。

out3_type

hostname

out3_value

host3.com

host3.com へのリクエストは、server3 によって提供されます。

out4_type

hostname

out4_value

host4.com

host4.com へのリクエストは、server4 によって提供されます。

プロキシ モード

コンテンツ処理タスクの場合、SQUID はターゲット Web サーバの負荷や帯域幅の使用を減らして、重複リクエストの取得を高速化できます。 この例では、Web ページ、pdf ドキュメントまたは画像のようなインターネットからのコンテンツが crawler1 によってすでにリクエストされていた場合、他のクローラが同じコンテンツのキャッシュ結果を受信します。

プロキシ モード

使用されるアプライアンスは次のとおりです。

プロパティ設定の例は次のとおりです。

プロパティ名

mode

proxy

SQUID はプロキシ モードで動作し、キャッシュ フォワード プロキシとして機能します。

listen_port

3128

SQUID が HTTP リクエストをリスンするポート。

hostname

proxy.enterprise.local

エラー メッセージ内に使用されるホスト名

アプライアンス内で使用されるオープン ソース/サードパーティ ソフトウェア

SQUID では、そのベース クラス LUX5 によって使用されるサードパーティのオープン ソース パッケージに加えて、以下のサードパーティ オープン ソース パッケージを使用します。

ソフトウェア

バージョン

変更

ライセンス

net-snmp

5.3.2.2-9.el5_5.1

なし

BSD

該当なし

net-snmp-libs

5.3.2.2-9.el5_5.1

なし

BSD

該当なし

net-snmp-utils

5.3.2.2-9.el5_5.1

なし

BSD

該当なし

samba-client

3.0.33-3.29.el5_5.1

なし

GPLv2

該当なし

samba-common

3.0.33-3.29.el5_5.1

なし

GPLv2

該当なし

libsmbclient

3.0.33-3.29.el5_5.1

なし

GPLv2

該当なし

squid

3.1.8-1.el5

なし

GPLv2

該当なし

lm_sensors

2.10.7-9.el5

なし

GPLv2

該当なし

dmidecode

2.10-3.el5

なし

GPLv2

該当なし

perl-DBI

1.52-2.el5

なし

GPLv2

該当なし