1 votes

MongoDB sur VPS 32 bits de 128 Mo (avec Tornado et Redis)

Je suis curieux de savoir comment MongoDB se comportera sur un VPS limité. Spécifiquement, je déploierai cette configuration sur un serveur Ubuntu 9.04 32 bits avec 128 Mo de mémoire (MISE À JOUR : maintenant je considère aussi 360 Mo).

  • nginx et redis
  • trois instances d'applications tornado (une est pour le site mobile ; une application limitée, pas mon public principal) ; comporte environ 8 collections. application web sociale pour ma communauté.
  • mongodb

Tout, à part mongodb, semble avoir une empreinte mémoire faible. En ce qui concerne la mémoire mappée, je ne sais pas comment mongodb se comportera.

Je sais que c'est un peu risqué d'utiliser ce genre de configuration sur un tout petit VPS, mais c'est ce que je peux me permettre pour le moment. J'espère avoir.. hmm.. peut-être ~50 15rps. J'ai fait mes devoirs en faisant beaucoup d'optimisations frontend et yslow indique une note A 91 (ruleset V2) :-)

Quelqu'un veut partager des expériences ? Par exemple, la taille du jeu de données quand mongo atteint sa limite, les performances quand mongo effectue beaucoup d'E/S disque, etc. Merci.

MISE À JOUR : c'est mon projet personnel. Je reviendrai vers vous quand j'aurai du temps libre pour refaire la même chose avec des spécifications exactement identiques dans une vbox. Toute suggestion sur la façon de faire des tests de stress est la bienvenue. Je débute dans ce domaine.

1voto

Ryan Sampson Points 2898

Ouais, je ne pense pas que ça va marcher. Un mongoDB que j'ai en cours d'exécution utilise actuellement 560MB VIRT, 205MB RES. Je ne sais pas comment cela se traduit en taille de jeu de données, mais je soupçonne que vous allez rencontrer des problèmes. Il n'y a qu'une seule façon de le savoir avec certitude - essayer et voir. Si vous ne pouvez pas mettre à niveau votre VPS (à quel point êtes-vous bon marché pour obtenir un VPS de 128 Mo que vous ne pouvez pas vous permettre un Linode de 360 Mo?), alors essayez-le et si cela ne fonctionne pas, abandonnez MongoDB et utilisez autre chose.

1voto

Je lance la configuration suivante (+superviseur +scénario errorlogger -redis) dans une machine virtuelle VirtualBox. J'ai chargé 5000 documents résultant en une taille de données d'environ 60 Mo (db.mycollection.totalSize()).

Dans ce test, /articles exécute deux requêtes pour le pagination et 15 requêtes pour récupérer des documents relationnels.

$httperf --hog --num-conn 1000 --timeout 5 --server peduli.vps --uri /articles

# Boîte de 360Mo
Taux de connexions : 7,6 conn/s (131,4 ms/conn, <=1 connexions concurrentes)
Temps de connexion [ms] : min 118,7 moy. 131,4 max 300,0 médiane 128,5 écart-type 12,2
Taux de réponse [réponses/s] : min 6,8 moy. 7,6 max 8,0 écart-type 0,3 (26 échantillons)
Temps de réponse [ms] : réponse 128,8 transfert 2,2

# Boîte de 128Mo
Taux de réponse [réponses/s] : min 4,2 moy. 6,3 max 7,2 écart-type 0,7 (31 échantillons)
Temps de réponse [ms] : réponse 154,5 transfert 4,2

$httperf --hog --num-conn 100 --ra 10 --timeout 5 --server peduli.vps --uri /articles
Taux de connexions : 7,8 conn/s (127,9 ms/conn, <=34 connexions concurrentes)
Temps de connexion [ms] : min 181,4 moy. 2267,7 max 4889,5 médiane 2421,5 écart-type 1209,6

Voici la capture d'écran de 'top' à l'intérieur de la boîte 'vps' de 128Mo

Mem : 121528k total, 117532k utilisés, 3996k libres, 2732k tampons
Swap : 409616k total, 8244k utilisés, 401372k libres, 56904k mis en cache

Ma conclusion? je ne sais pas, il faudra comparer la configuration avec mysql à la place de mongodb.. peut-être que c'est suffisant?

1voto

torchhound Points 343

Savez-vous que mongodb utilise mmap et va simplement allouer toute la RAM sur laquelle ses doigts collants se posent...

0voto

Ari Ronen Points 1114

En supposant que les 128 Mo sont sur 32 bits, veuillez vous rappeler que vous êtes limité à 1,8 Go de données

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X