• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:海外サーバ利用時にのみサーバへ極端な負荷が)

海外サーバ利用時にのみサーバへ極端な負荷が

このQ&Aのポイント
  • 海外サーバを利用すると、サーバへの負荷が非常に高くなる問題が発生しています。
  • 国内サーバでは同じシステムが快適に動作しているのに対し、海外サーバでは動作が鈍くなる現象が起きています。
  • 問題の発生した海外サーバの中には、アカウントが停止されるほどの負荷がかかっているものもあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • utun01
  • ベストアンサー率40% (110/270)
回答No.1

PHP内部で呼んでいるDBが日本にあるDBサーバとかってことはないでしょうか。 またはソース内で読み込む外部APIが遠くにあるだとか。 実機でしか再現しないのであれば、ソース内にデバッグ用のメッセージなり埋め込んで 何処で重くなっているのか調べてみるしかない気がします。 業務的に作っておられるのであれば、各部品単位でテストできるようになっているかと思いますので その単位で地道に見てみてはいかがでしょう。

coai
質問者

お礼

DBサーバは各サーバで指定されたもの(ほとんどはlocalhost)を指定しています。 外部APIは使用していません。 なので、伝送距離の問題はあり得ない、あくまでサーバ設定の問題を突いてしまったせいだと思い込んでいましたが。 ヒントを受けて、やっぱり伝送距離(速度)の問題も頭に入れて…と、視点を変えて見直してみると、どうやらgethostbyaddrが原因だったようです。 携帯電話とPCを振り分ける処理にIPアドレス範囲を指定すると、キャリアが使用アドレス範囲を変更すると、そのたびに変更の必要がありメンテナンス性が悪い。 そこでホスト名を逆引きして携帯か否かを判別としていたのですが、そこで時間が掛かっていたようです。 原因が判明してみると、コア部分で毎回走っている処理でもあり、うまく切り分けできなかった事や、そこが遅いとサーバに負荷を掛けるほどのレベルになる事、海外サーバの場合に問題が非常に顕著になる事、一つ一つが腑に落ちます。 おそらく問題の発生しなかった唯一の海外サーバは、逆引きの早いものだったのかも知れません。 ※正しい表現かどうか判りませんが、ネームサーバのキャッシュ容量でも多い設定? 該当システムは、厳密に携帯とPCを振り分けする必要はないため、ユーザエージェントで振り分けるようにして、偽装されることも許容するという対処にします。 ありがとうございました。