Bonjour à tous
Je me doute que ce n'est pas un forum d'expert neo4j et ma question est assez spécifique, mais sait-on jamais, c'est peut être coté ordinateur que se trouvera la réponse et non pas coté base de donnée
Pour faire court, j'ai 2 pc (laptop A : 4 coeurs, 16 giga de RAM, laptop B: 8 coeurs 16 giga de RAM) qui ont tout le reste identique dans le cadre de mon besoin (tournent tout deux sur windows, avec Neo4j 5.22.0, meme parametrage de neo4j dans le fichier neo4j.conf, meme script cypher qui tourne, et même données dans les DB, meme database avec les meme éléments indexés pour optimiser les requetes)
je m'attendais à ce que le laptop B tourne plus rapidement le script Neo4j (vu qu'il a plus de CPU) mais au final il va bien plus lentement que le premier (2x plus lentement)
Alors que pourtant il a plus de CPU et tout le reste est identique
Quand je regarde la consommation des ressources, mon processeur n'est utilisé qu'a 10% (pendant que le script tourne) ma memoire a 50% et le disque à 5% rien n'est donc surchargé, et il à de quoi augmenter en utilisation, il est loin d etre saturé en charge de travail, et pourtant il n'utilise pas les ressources disponibles et vas 2x moins vite
Alors certes, peut etre que les paramétrages peuvent etre optimisés (bien que j'ai essayé), mais la ou ca m'ennuie, c'est que c'est les meme paramètres sur le laptop A qui est techniquement moins performant, donc à paramètres égaux, laptop B devrait être légèrement plus rapide, voir a minima etre à égalité
j'ai tenté d'augmenter la memoire utilisable dans les parametres du neo4j.conf :
dbms.memory.heap.initial_size= 2G
dbms.memory.heap.max_size=3G
dbms.memory.pagecache.size=2G
c'est actuellement les mêmes valeurs sur les deux laptop, mais j'ai tenté de les augmenter sur le laptop B voir si il consommerait plus, mais ca n'a rien changé
j'ai également ajouté le parametre :
dbms.threads.worker_count=8 (que j'ai testé avec comme valeurs 16, 10, 8 et 5 threads pour paralléliser), mais pareil aucune différence,
Comment se fait-il que le meme script tourne plus rapidement sur mon pc moins performant et que sur celui ci , il n'arrive pas a utiliser plus de CPU pour augmenter la vitesse de traitement (et a minima etre au moins aussi rapide que l'autre)
j'ai deja tenté chatGPT pour résoudre le problème, il revient tout le temps sur le fait qu'il puisse y avoir un goulot d étranglement I/O, (ce qui n'est pas le cas car le disque est à 5%) ou de modifier les paramètres neo4j.conf, ce que j'ai fait en vain, mais qui de toute facon n'est pas le coeur du problème puisqu'il y a la meme config sur l'autre pc qui pour le coup est plus rapide), ou encore sur le fait d'optimiser le code cypher (ce qui n'est pas un mauvais argument mais ne change rien encore une fois au fait que c'est également le même code sur les 2 pc et donc n'explique pas la différence de performance entre les deux
Merci pour vos réponses
-----