J'ai un serveur de 64 bits, 8 Go de RAM, CPU double quadruple. Aucune ressource ne frappe 100% (sauf, je suppose, la JVM - non?).Comment indexer les enregistrements dans Solr plus rapidement (et non sur le serveur web ColdFusion)? Deux JVM?
J'ai besoin d'indexer plusieurs millions d'enregistrements pour Solr, mais la machine est en production. Je reconnais avoir une deuxième machine pour l'indexation serait utile.
Devrais-je dédier une seconde instance de la JVM, dédiée à Solr?
À l'heure actuelle, lorsque j'exécute un index, les pages qui sont normalement servies en 200 millisecondes se libèrent en environ 1,5 seconde, parfois plus ... en frappant, même, l'erreur redoutée "Service is Unavailable".
J'ajusté ma Heap machine virtuelle Java comme suit:
-Xmx1024m
-XX:MaxPermSize256m
Dans le cas où je chasse la mauvaise solution, permettez-moi d'élargir le paysage un peu. Il semble que je ne peux pas affecter la vitesse d'indexation de Solr. J'avais précédemment indexé environ 150 000 enregistrements par heure sur un serveur de développement virtualisé sur un poste de travail. Dans un environnement de production avec beaucoup plus de matériel disponible, j'indexe exactement à la même vitesse.
Sans données pour le prouver, je pense que mes ajustements JVM n'ont pas accéléré l'indexation, bien qu'il ait pu permettre au serveur CF de continuer à servir des pages. Je dois dire que la vitesse d'indexation est terriblement lente, mais je sais que ce n'est pas une fonction de la couche d'accès aux données. Je l'ai réécrit de ORM pur à des objets soutenus par des procédures stockées SQL en pensant que c'était le ralentissement (aucun effet).
Clarification: le processus d'index est HTTP Post (non incorporé). –
vous ne devriez pas indexer beaucoup de données fréquemment, n'est-ce pas? Vous pouvez utiliser action = mise à jour – Henry
Correct, Henry, ce sera probablement un lot mensuel (nouvelles importations de données, certaines mises à jour de données). –