3

新しい VPS サーバーがあり、同じ ISP の別のサーバーに接続しようとしています。mysql のコマンド ライン ツール経由で接続すると、接続は非常に高速です。

PHP を使用してリモート DB に接続すると、接続に最大 5 秒かかる場合があります。これ以降のクエリはすばやく実行されます。

これは mysql に限ったことではなく、file_get_contents() を使用して他のほぼすべてのサーバーからファイルをダウンロードすると、同じ遅延が発生します。wget を使用してファイルを取得すると、この遅延は発生しません。

dns_get_record() を使用して PHP 内から DNS クエリの時間を測定しましたが、これらは高速です (1 ~ 2 ミリ秒)。

PHP構成の何がこれを引き起こしているのかについて何か考えはありますか?

ありがとう。

4

2 に答える 2

2

PHP がどのモードで実行されているかを確認します。何らかの理由でスクリプトを CGI として実行しているのでしょうか。基本的にPHP自体は非常に遅く、リモート操作を実行しているときにのみ顕著です.

Web サーバーの構成を確認してください。また、オプションである場合は、コマンド ラインから PHP を試して、Web サーバー レイヤーを使用しない方がパフォーマンスが向上するかどうかを確認してください。

于 2008-11-08T04:07:20.643 に答える
1

最終的に PHP 5.1.6 から PHP 5.2.6 にアップグレードしたところ、問題は解決しました。これは間違いなく PHP 内の DNS ルックアップの問題であり、次の実行には約 5 秒かかります。

gethostbyname('example.com')

私は IPV6 が問題だったと感じています (ほとんどの場合、これについてオンラインで読んだことからの予感です) が、証拠はありません。

于 2008-11-08T21:05:41.260 に答える