2

最近、この状況で何も変更していませんが、最近、リモートサーバーへの mysqli_connect() が非常に遅くなります (30 秒の最大実行時間に達する時間の約半分)。動作する場合、応答時間は 28 ~ 30 秒です。

両方のサーバーで MySQL を再起動しました。PHP スクリプトを保持するサーバーはローカル WAMP サーバーであり、リモート サーバーは LAMP スタックです。LAMP サーバーは、WAMP サーバーが要求しているのと同じ情報を適切に提供します。クエリは問題ではないようですが、代わりに mysqli_connect() が問題のようです:

    $mtime = microtime(); 
    $mtime = explode(" ",$mtime); 
    $starttime = $mtime[1] + $mtime[0]; 
        $this->conn = mysqli_connect($this->host,$this->user,$this->password) or die(mysqli_error($this->conn));
        $etime = microtime(); 
    $etime = explode(" ",$etime); 
    $endtime = $etime[1] + $etime[0]; 
    $totaltime = ($endtime - $starttime);  
    echo('<!--mysqli_connect took: '.$totaltime.' seconds-->');

ページ (max_execution_time をヒットしても 500 応答が返されない場合) は次のように表示されます。

<!--mysqli_connect took: 28.975151777267 seconds-->

リモート LAMP サーバーで同じコードを実行すると、次のように表示されます。

<!--mysqli_connect took: 0.036190032958984 seconds-->

これが機能していたので、このコードを更新したり、構成を変更したりしていません。WAMP サーバーで 30 秒を超えたときに max_execution_time を超えたエラーを除いて、どちらのサーバーでもエラーは発生しません。誰か提案はありますか?

読んでくれてありがとう。

4

2 に答える 2

0

問題が見つかりました。これは DNS 関連です。まだ完全には理解できていませんが。LAMP サーバーでデーモンnamedが停止したようです。このサーバーは、接続に使用していたドメイン名の権限のある NS です。時々動いていたのも、IPアドレスを使っていたのになぜ動かなかったのかもわかりませんが、サービスを再開した今は問題なく動いています。

ご協力ありがとうございました。

于 2014-01-14T23:12:26.933 に答える