2009-03-03 6 views
5

J'évalue tokyo cabinet Table moteur. Le taux d'insertion ralentit considérablement après avoir atteint 1 million d'enregistrements. La taille du lot est de 100 000 et est effectuée dans le cadre de la transaction. J'ai essayé de régler le xmsiz mais toujours pas d'utilisation. Est-ce que quelqu'un a fait face à ce problème avec le cabinet de Tokyo?Cabinet Tokyo - inserts plus lents après avoir frappé 1million

Détails

armoire Tokyo - 1.4.3
liaisons Perl - 1,23
OS: Ubuntu 7.10 (VMWare Player sur le dessus de Windows XP)

Répondre

2

Je viens de régler la option de cache et il est maintenant beaucoup plus rapide.

1

Je pense que la modification du paramètre bnum dans la fonction dbtune donnera également une amélioration significative de la vitesse.

4

Je frappe aussi un mur de briques d'environ 1 million d'enregistrements par fragment (en partitionnant du côté client, rien d'extraordinaire). J'ai essayé différentes options de ttserver et ils semblaient ne faire aucune différence, donc je regardais du côté du noyau et a constaté que

echo 80 > /proc/sys/vm/dirty_ratio

(valeur précédente était de 10) a donné une grande amélioration - ce qui suit est la taille totale de les données (sur 8 tessons, chacun sur son propre noeud) imprimé chaque minute:

 
total: 14238792 records, 27.5881 GB size 
total: 14263546 records, 27.6415 GB size 
total: 14288997 records, 27.6824 GB size 
total: 14309739 records, 27.7144 GB size 
total: 14323563 records, 27.7438 GB size 
(here I changed the dirty_ratio setting for all shards) 
total: 14394007 records, 27.8996 GB size 
total: 14486489 records, 28.0758 GB size 
total: 14571409 records, 28.2898 GB size 
total: 14663636 records, 28.4929 GB size 
total: 14802109 records, 28.7366 GB size 

vous pouvez donc voir que l'amélioration était de l'ordre de 7-8 fois. La taille de la base de données était d'environ 4,5 Go par nœud à ce moment (y compris les index) et les nœuds ont 8 Go de RAM (donc dirty_ratio de 10 signifiait que le noyau essayait de garder moins de 800 Mo de poussière).

La prochaine chose que je vais essayer est ext2 (actuellement: ext3) et noatime et aussi tout garder sur un disque virtuel (ce qui gaspillerait probablement deux fois la quantité de mémoire, mais pourrait en valoir la peine).

Questions connexes