FlorianCassayre/insee-db

Indiquer la quantité de RAM nécessaire pour construire la BDD

wblondel opened this issue · 4 comments

Bonjour,

J'ai mis la mémoire maximum utilisée à 16Go, le programme a crashé au bout d'1h46 car pas assez de mémoire.
Je dispose de 24Go, donc je pourrais monter à 20-22Go.

Combien lui faut-il ?

Après le dernier OK, le CPU a été utilisé à 100% pendant 1h avant de crash.

log: https://pastebin.com/renEcajU

J'ai essayé avec 20Go, c'est bon, c'est passé, et ça a duré 1h15.

Hello, désolé j'ai été submergé par les notifications et je n'ai pas vu le ticket.
Alors déjà félicitations pour avoir réussi à produire la base de données malgré la documentation très frugale...
En effet comme tu as pu le constater, un des inconvénient est que le programme est gourmand en mémoire. De mon côté j'utilisais une machine distante pour faire le travail (mon ordinateur ne possédant que 8Go à l'époque). Au début il me fallait 40Go, j'ai ensuite fait quelques modifications qui ont réduit l'impact mémoire ; j'ai utilisé jusqu'à présent 32Go et je n'ai pas essayé autre chose. Mais avec un swap partitionné sur SSD je ne serais pas surpris que ça puisse fonctionner avec moins que ça.

Pas de soucis!

Oui ce n'était pas évident, d'autant plus que je n'avais jamais touché au Scala =)

J'avais comme projet d'écrire mon propre indexeur, dans un langage que je connais bien (Python), pour résoudre les problèmes que j'avais constatés (consommation de mémoire, temps de création de la BDD, et impossibilité de mettre à jour la base de données), mais je me suis tourné vers l'utilisation d'Elasticsearch. Cela me permet de tout indexer et de faire des recherches rapidement; avec Kibana je peux visualiser tout cela et faire des graphs/stats; et avec Logstash je peux importer automatiquement les nouveaux CSV de l'INSEE pour mettre à jour la base.

En tout cas, je te remercie énormément pour ton travail, je me suis intensivement servi de ton site pendant quelques mois 😄

Scala est ma préférence personnelle car je le trouve agréable à utiliser ^^.

Très clairement je pense que Elasticsearch est la solution à ce problème (on l'utilise d'ailleurs intensivement au travail, avec son API Python). Mais ce que je redoutais avec ce service c'est une utilisation importante des ressources, notamment processeur, mémoire et stockage (actuellement le service est hébergé sur un VPS SSD bas de gamme). Cela dit je n'ai pas fait la comparaison donc je me trompe peut-être ; je veux bien avoir ton retour d'ailleurs si tu veux bien le partager, en termes de ressources nécessaires une fois toutes les données indexées.

Dans tous les cas ça me fait plaisir que tu aies pris le temps d'installer le programme. Suivant ce pour quoi tu as utilisé le site, ces projets pourraient éventuellement t'intéresser (il s'agit encore de work in progress / proof of concept).