2010-08-23 4 views
27

J'ai lu la documentation de MongoDB et un avertissement sur les systèmes 32 bits; en particulier qu'ils sont plafonnés à 2 Go de RAM disponible pour Mongo.Faisabilité de courir MongoDB sur Linode 512 VPS?

Donc je me demandais si cette déclaration signifiait quelque chose en ce qui concerne l'exécution de MongoDB dans un paramètre de mémoire faible comme 512 Mo de RAM basé sur VPS de Linode. Je doute que ce soit important, mais avec une distribution 64 bits pour l'ajout ultérieur de ressources.

Des avertissements ou quelqu'un recommanderait-il un minimum de RAM à choisir dans un VPS pour MongoDB? Je sais que les exigences du projet entrent en ligne de compte, mais je veux dire au minimum dans le sens de ce qui pourrait être risible de se passer de MongoDB même pour faire tourner la machine.

+2

Wow, leurs docs disent « 32 bits construit sont limitées à environ 2 Go de données. » Et là je pensais que "données" était l'espace disque. Ce serait un désastre. Mongo presque abandonné tout à fait juste là et là. Je suis tellement content d'avoir vu cette question. – Joe

Répondre

26

Je l'utilise sur certains petits sites de production qui tournent dans ma Linode 512 & il utilise à peine n'importe quelle mémoire, seulement environ 5 - 6MB. Mon jeu de données est très petit pour le moment.

MongoDB utilise un moteur de stockage de mémoire mappé, ce qui signifie qu'il repose sur le cache du système d'exploitation pour conserver les données fréquemment utilisées en mémoire.

http://www.mongodb.org/display/DOCS/Caching

Donc, sauf si vous avez un énorme ensemble de données pour commencer avec un Linode 512 devrait être OK.

La seule chose qui m'inquiète un peu lorsque je fais des recherches est que MongoDB semble planter quand il manque de mémoire, sans trop d'avertissement. Il est également difficile de déterminer avec précision la quantité de mémoire ou d'espace disque utilisée proportionnellement à la quantité de données dont vous disposez. Il n'y a également aucun moyen de spécifier des limites strictes, au prix de performances dégradées. C'est quelque chose que vous voudrez probablement surveiller. Vous pouvez essayer d'exécuter MongoDB avec les options --smallfiles --noprealloc, car cela permet de commencer par des fichiers de base de données plus petits et de ne pas les préallouer, économisant de l'espace disque si vous avez un petit jeu de données.

Voici une expérience de l'utilisateur:

http://groups.google.com/group/mongodb-user/browse_thread/thread/223810a749f0e1eb

Malheureusement ce fil n'a pas été résolu, aurait été bien s'ils avaient une raison de l'accident.

C'est aussi bon de lire:

http://groups.google.com/group/mongodb-user/browse_thread/thread/2646a52c4f41d832/d43f3ba7bbbbd63d

+0

Ok, merci Klinky :) Je vais lire ces liens et m'assurer de bien comprendre les termes impliqués. – RayTFM

+1

L'accident est susceptible d'être causé par le système OOM tueur. Jetez un oeil à http://www.mongodb.org/display/DOCS/The+Linux+Out+of+Memory+OOM+Killer – thoaionline

+0

Cela peut être une bonne idée de créer un fichier d'échange, Linode fonctionne sur SSD donc c'est pas si terriblement lent. Il est toujours préférable d'avoir un peu de retard sous une charge élevée que de planter complètement MongoDB. Et assurez-vous d'ajuster 'vm.swappiness' de sorte que vous ne toucherez pas SSD à moins que ce ne soit absolument nécessaire. –