NewRelic アカウントでランダムなアプリケーション トランザクション トレースを取得しています。これは、PHP が MongoDB レプリカ セットに接続するのに苦労していることを示しています。
トランザクション トレースは、MongoConnection::getConnection に 1 ~ 6 秒かかる場合があることを示しています。ただし、監視しているトランザクションには平均で約 25 ミリ秒かかります。
これは私の接続クラスです:
class MongoConnection {
static $db = NULL;
static function getConnection() {
if (self::$db === null) {
try {
$m = new MongoClient("mongodb://server1:27017,server2:27017/?replicaSet=replicaset");
} catch (MongoConnectionException $e) {
die('Failed to connect to MongoDB '.$e->getMessage());
}
self::$db = $m->database;
}
return self::$db;
}
}
MongoDB v2.4 と PHP ドライバー v1.3.4 を実行しています。
なぜこれが発生するのか、問題を診断するために何を探すべきか正確にはわかりません. 誰かが私に何が起こっているか教えてくれたり、問題を探すべき場所を教えてくれたりしたら教えてください。追加情報を提供させていただきます。ありがとう。