PHP-リモートデータベースへの接続が非常に遅い
-
07-07-2019 - |
質問
新しいVPSサーバーがあり、それを同じISPの別のサーバーに接続しようとしています。 mysqlのコマンドラインツール経由で接続すると、接続は非常に高速です。
PHPを使用してリモートDBに接続する場合、接続時間は最大5秒かかる場合があります。この後のクエリは迅速に実行されます。
これはmysqlに限定されず、file_get_contents()を使用してほぼすべての他のサーバーからファイルをダウンロードすると、同じ遅延が発生します。 wgetを使用してファイルを取得しても、この遅れはありません。
dns_get_record()を使用してPHP内からDNSクエリのタイミングを計ったところ、これらは高速(1〜2ミリ秒)です。
これを引き起こしているのは、php configのどのような考えですか?
ありがとう。
解決 2
最終的にPHP 5.1.6からPHP 5.2.6にアップグレードすると、問題はなくなりました。これは間違いなくPHP内のDNSルックアップの問題であり、次の実行には約5秒かかります。
gethostbyname('example.com')
IPV6が問題であると感じています(ほとんどの場合、このオンラインについて読むことの予感です)が、証拠はありません。
他のヒント
PHPがどのモードで実行されているかを確認します。何らかの理由でスクリプトをCGIとして実行しています。基本的に、PHP自体は非常に遅く、リモート操作を実行しているときにのみ顕著です。
Webサーバーの構成を確認します。また、オプションの場合は、コマンドラインからPHPを試して、Webサーバーレイヤーを使用しなくてもパフォーマンスが向上するかどうかを確認してください。
所属していません StackOverflow