C'est très dépendant du système, mais les chances sont presque certaines que nous passerons devant une falaise arbitraire et entrerons dans Real Trouble. Je suis curieux de savoir quel type de règles de base existent pour un bon rapport RAM / espace disque. Nous planifions notre prochaine série de systèmes et devons faire des choix concernant la RAM, les SSD et la quantité de chacun des nouveaux nœuds.
Mais maintenant, pour quelques détails sur les performances!
Pendant le flux de travail normal d'une seule exécution de projet, MongoDB est atteint avec un pourcentage très élevé d'écritures (70-80%). Une fois la deuxième étape du pipeline de traitement atteinte, sa lecture est extrêmement élevée car elle doit dédupliquer les enregistrements identifiés dans la première moitié du traitement. C'est le flux de travail pour lequel "garder votre jeu de travail dans la RAM" est fait pour, et nous concevons autour de cette hypothèse.
L'ensemble de données est continuellement frappé par des requêtes aléatoires provenant de sources dérivées de l'utilisateur final; bien que la fréquence soit irrégulière, la taille est généralement assez petite (groupes de 10 documents). Étant donné que cela est destiné à l'utilisateur, les réponses doivent être inférieures au seuil "ennuyé maintenant" de 3 secondes. Ce modèle d'accès est beaucoup moins susceptible d'être dans le cache, il est donc très probable qu'il génère des hits sur le disque.
Un flux de travail de traitement secondaire est une lecture élevée des exécutions de traitement précédentes qui peuvent avoir des jours, des semaines ou même des mois, et il est exécuté rarement mais doit toujours être zippé. Jusqu'à 100% des documents du cycle de traitement précédent seront accessibles. Aucune quantité de réchauffement du cache ne peut aider à cela, je suppose.
La taille des documents finis varie considérablement, mais la taille médiane est d'environ 8 Ko.
La partie haute lecture du traitement de projet normal suggère fortement l'utilisation de répliques pour aider à distribuer le trafic de lecture. J'ai lu ailleurs qu'un RAM-GB 1:10 à HD-GB est une bonne règle de base pour les disques lents, Comme nous envisageons sérieusement d'utiliser des SSD beaucoup plus rapides, je voudrais savoir s'il existe une règle similaire de pouce pour les disques rapides.
Je sais que nous utilisons Mongo d'une manière où le cache-tout ne va vraiment pas voler, c'est pourquoi je cherche des moyens de concevoir un système capable de survivre à une telle utilisation. L' ensemble de données sera probablement la majeure partie d'une tuberculose d'ici six mois et continuera de croître.