我在我的 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。
我不知道为什么会发生这种情况,也不知道要寻找什么来诊断问题。如果有人可以告诉我发生了什么或指出我应该在哪里寻找问题的方向,请告诉我。很高兴提供更多信息。谢谢。