Proxy配置による差異(まとめ)

Proxyを海外に置いてもある程度の効果があり、ダブルプロキシとしても、それほど大きな差はない。

[東京]-----[ロサンゼス:nginx Reverse Proxy]----[シカゴ:Apache2 + PHP7.0.x with OPCaxhe]
     153ms                            20ms

Requests per second: 25.67 [#/sec] (mean)

[東京] ---- [大阪:nginx Reverse Proxy] ---- [シカゴ]
      10ms                         171ms

Requests per second: 141.06 [#/sec] (mean)

[東京] ---- [大阪:Proxy] ---- [ロサンゼルス:Proxy] ---- [シカゴ]
     10ms             161ms                     20ms

Requests per second: 132.28 [#/sec] (mean)

上記の内で、体感的に調子が良いのは、CaheサーバーとWebサーバー距離が短いほうが、高速性は劣るが、表示の安定性が得られている。たぶん、nginxが低レイテンシ応答を実現したいのだが、その先のサーバーまでのレイテンシが高いので、表示が安定ていないような挙動を示している。理想的には。CacheサーバーとWebサーバーが近いほうが、最速は出無くても、表示が安定するようだ。
上記の例で言えば、[東京] — [シカゴ:Reverse Proxy] — [シカゴ]のような接続や。[東京] — [ロサンゼルス:Reverse Proxy] — [シカゴ]といった接続のほうが、一定した応答となった。
[Client] — [Server] のレイテンシを気にするより、[Reverse Prixy] — [Web サーバー]の距離を重視したほうが、安定する。nginxの特性によるものだろうと推定するが、いつも一定した応答を求めるならば、それぞれの区間のレイテンシがあまり離れないほうが、良い結果となる感じがする。

nginx に於ける、フロントエンドとバックエンドでは、複雑な応答をせざるを得ないバックエンドの性能のほうは即時性が得られないので、Cacheとの整合性を判断しながら、バックエンド側へのリクエストが発生するため、バックエンド側の接続性がある意味重要になってくる。
もちろん、静的なCache応答は、クライアントからは、できるだけ近いほうが性能が出ることになるが、実用性からすれば、バックエンド側にボトルネックを作らないほうが、良好な結果となった。

安定していた接続

[東京]-----[ロサンゼス:nginx Reverse Proxy]----[シカゴ:Apache2 + PHP7.0.x with OPCaxhe]
     153ms                            20ms

Requests per second: 25.67 [#/sec] (mean)

トータル的に、爆速とまでは行かないが、実用範囲と考えられる性能が出ている。
今後、海外サーバーを利用する場合、上記のように、リクエストに対する応答連続性が得られる構成を意識しながらチューニングするのが望ましいと思われる。