polipoの設定を見直してみる。

id::rubikitch さんからコメントを貰って嬉しくなったので、polipoの設定を見直してみることにしました。

んで、id:rubikitch さんが言っていた「serverSlots, serverSlots1, serverMaxSlots」について調べてみました。

後ついでに設定してみました。

とりあえずpolipoのマニュアルを読んでみました。

原文はhttp://www.pps.jussieu.fr/~jch/software/polipo/manual/Server_002dside-behaviour.html:こちらから引用させていただいてます。
以下該当部分の引用。

The most important piece of information about a server is whether it supports persistent connections. If
this is the case, Polipo will open at most serverSlots connections to that server (serverSlots1 if the
server only implements HTTP/1.0), and attempt to pipeline; if not, Polipo will hit the server harder,
opening up to serverMaxSlots connections.

以下、ノリと間隔だけで訳してたもの。(筆者の英語力は無きに等しいので、感覚だけ合っていればいいや、的な感じで)

「サーバに対する情報の中で最も重要なのは、そのサーバが永続的コネクションをサポートしているかどうかだ。
もしサポートしているなら、PolipoはserverSlotsで指定されているだけのコネクションをそのサーバに対して開き
(サーバがHTTP1.0のみ実装している場合は、serverSlots1の値が使われる)、パイプライン処理を試みる。
もしサーバが永続的コネクションをサポートしていない場合、PolipoはserverMaxSlotsで指定されているコネクション
数を開こうとサーバに要求する。」

うん、ノリだけ分かっていただければ十分です。

つまり、次のようなものらしい。

serverSlots
サーバが永続的コネクションをサポートしていて、HTTP1.1で接続できる場合に、Polipoからサーバに対して接続するコネクション数。パイプラインが効く。
serverSlots1
サーバが永続的コネクションをサポートしていて、HTTP1.0でのみ接続できる場合に、Polipoが開く-コネクション数。パイプラインが効く。
serverMaxSlots
永続的コネクションが利用できない場合に、Polipoが開こうとするコネクション数。パイプラインは効かない?

ということは、HTTP1.1で接続できる場合、serverSlotsを多めに指定することでパイプライン処理が効いて速く
なるよ、ということでしょーか。

とりあえずpolipoの設定ファイルに記述してみることに。
今迄のを確認すると

serverSlots --> 8
serverSlots1 --> 8
serverMaxSlots --> 8

とのことでした。

んじゃあとりあえず倍にしてみるか、というわけで次のように設定。

serverSlots --> 16
serverSlots1 --> 16
serverMaxSlots --> 16

そして、sudo /etc/init.d/polipo restart でpolipoを再起動して様子を見てみます。
・・・うーん、繋がってからは明らかに速くなったけど、繋がるまでが長いですねぇ。でも同じサイト内での遷移は抜群に速くなりました。

すでに何処かで出ているのかもしれませんが、なにかのお役にたてば幸いです。
それとrubikitchさん、ありがとうございました。

追記:

コメントで、同時接続数が多すぎるとRFC違反になるとのこと(確かにどこかで
聞いたことがあるような)でしたので、serverSlotsを元に戻してみました。

・・・あれ、数増やした時よりも速くなってる。なんでやろ。