2

J'ai créé Mongodb avec Replica Set sur Azure. J'ai l'application de rails frappant la réplique réglée sur l'IP publique. Mon jeu de réplicas a 1 noeud principal et 2 noeud secondaire. Je suis confronté à un décalage extrême en réponse des nœuds secondaires, mais une réponse très rapide du nœud principal pour la requête isMaster.Bitnami Mongodb ReplicaSet Définir le problème sur MS Azure - Réponse secondaire de noeud secondaire

requête qui prend à beaucoup de temps pour le noeud secondaire

base de données COMMAND = commande admin = {: IsMaster => 1}

MongoId 4.0.1 Rails 4.2.5

Pourquoi mongodb appelant au noeud secondaire? Je suis d'accord s'il appelle, mais pourquoi cela prend tellement de temps à maintenir ma demande d'application pendant environ 12 secondes (6 secondes pour chaque nœud secondaire).

J'apprécie votre aide à l'avance.

Sharing application log comme ci-dessous

I, [2016-11-30T11: 27: 05,351584 # 11924] INFO -: Commencé GET "/" pour 175.100.138.183 à 30/11/2016 11:27 : 05 +0000 I, [2016-11-30T11: 27: 05.352680 # 11924] INFO -: Traitement par le contrôle de bienvenue # index en HTML I, [2016-11-30T11: 27: 05.352786 # 11924] INFO - : Paramètres: { "request_client" => "production_abc_io", "client_database" => "localhost"}

// Cet appel au nœud primaire retour rapide reponse D, [2016-11-30T11: 27: 05,356846 # 11924] DEBUG -: MOPED: 10.0.0.4:27017 COMMANDE database = admin commande = {: ismaster => 1} runtime: 0,6903ms

// Cet appel au nœud secondaire prend environ 6 secondes D, [2016-11-30T11: 27 : 11.356397 # 11924] DEBUG -: vélomoteur: 10.0.0.5:27017 base de données COMMAND = commande admin = {: IsMaster => 1} Durée: 5999.3523ms

// Cet appel à un autre nœud secondaire prenant environ 6 secondes D, [2016-11-30T11: 27: 17.356509 # 11924] DEBUG -: MOPED: 10.0.0.6:27017 base de données COMMAND = admin commande = {: ismaster => 1} durée d'exécution: 5999.8489ms

D, [ 2016-11-30T11: 27: 17.357908 # 11924] DÉBOGUE -: MOPED: replica_set_public_ip: 27017 QU ERY base de données = localhost collection = clients selector = {"_ id" => BSON :: ObjectId ('55e9a684747265a004000000')} drapeaux = [: slave_ok] limite = 0 skip = 0 batch_size = nil champs = nil durée: 1.1453ms

D, [2016-11-30T11: 27: 17,360061 # 11924] DEBUG -: vélomoteur: replica_set_public_ip: 27017 = base de données qUERY collection localhost = base_users sélecteur = { "$ query" => { "Client_

Répondre

0

Par défaut, toutes les opérations de lecture sont routées vers le noeud principal sauf si vous avez modifié le paramètre read preference. Ce paramètre peut expliquer pourquoi le nœud principal appelle les nœuds secondaires.

Afin de comprendre pourquoi les requêtes vers les secondaires sont lents, vous pouvez jeter un oeil aux journaux mongodb situés dans '/opt/bitnami/mongodb/logs/mongodb.log'. Peut-être qu'il y a des informations là-bas.Par ailleurs, vous pouvez utiliser la commande mongotop pour surveiller les statistiques d'utilisation de base de chaque collection et la commande mongostats pour surveiller les statistiques de base du serveur MongoDB.

+0

J'ai la préférence de lecture par défaut comme lu: primaire. J'ai vérifié mongodb.log. Mais malheureusement, aucun indice de problème. Il est difficile pour moi de deviner qui et pourquoi appelle des nœuds secondaires. Pouvons-nous spécifier quel est le maître dans le fichier de configuration afin qu'il n'appelle pas isMaster sur les nœuds pour chaque requête? –