トラフィッククォータはSquidのどのバイトカウンタを使うべきか
Squidのログ項目を合計する前に、プロキシのクォータが応答・リクエスト・上流のボディ・アクセス回線のどこを測るのかを決めます。
「各ユーザーに10ギガバイト」という言い方は、二つのレポートが食い違うまでは正確に聞こえる。一方はクライアントへ送った応答を合計し、もう一方は上流から取得したバイトを数えていた。どちらも自分が選んだ項目を正しく報告しているかもしれない。
Squidのログ形式には別々のカウンタがある。
| 項目 | 文書化された測定内容 |
|---|---|
%<st | 適応後の、クライアントへ送った応答トラフィックの総量 |
%>st | クライアントから受け取ったリクエストの総サイズ(チャンク転送符号化のバイトを除く) |
%<bs | 次のホップから受け取ったHTTP相当のメッセージボディのバイト数(文書化された除外あり) |
Squidネイティブログのbytes列は、クライアント応答カウンタを使う。値が保存ファイルの長さに等しいという約束でも、ISPが課金するすべてのEthernetやIPのバイトを測ったものでもない。
キャッシュヒットが違いを示す。Squidは上流から新たに取得せずに応答を送れる。アップロードの多い作業は別の違いを示す。応答だけを数えると、リクエスト方向が予算から外れる。
CONNECTでは、プロキシはトンネル内の個々の暗号化ファイルやページを理解しなくても中継トラフィックを計上できる。だがトンネルのバイト合計を、ダウンロードされたアプリケーションオブジェクトの正確な一覧に変えることはできない。
クォータの契約をカウンタの隣に書く。方向、観測点、会計期間、識別子である。そしてログ形式の版をレポートと一緒に残す。1バイトの意味をめぐる不一致を、推測した補正係数を全値に掛けて「修正」してはならない。強制適用では、完了したトランザクションの合計が実際の使用量に遅れることがある。