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を元に戻してみました。
・・・あれ、数増やした時よりも速くなってる。なんでやろ。