SvnServe.exe consommant plus de 200 Mo de memory

J'ai eu CollabNet Subversion Server 1.6.2.37639 installé sur Windows Server 2003 R2 (Enterprise, x86) et évidemment le configuré comme un service. Je ne gère qu'un seul repository, qui est un miroir svnsync d'un autre (hébergé sur une autre machine). Le service fonctionne bien, mais après quelques jours de fonctionnement, il occupe plus de 200 Mo de RAM sans raison apparente. En outre, le trafic vers le repository est très négligeable. Aucun dysfonctionnement n'est enregistré, et il ne semble pas y avoir de fuite de memory car la consommation de memory ne dépasse jamais cette figure.

La taille du repository est d'environ 194 Mo et le nombre d'engagements / caisse est d'environ 10 par jour.

Il semble beaucoup de memory "gaspillée" qui pourrait être atsortingbuée, par exemple, pour le cache de la database.

Est-ce que quelqu'un en sait plus sur ce problème et comment le résoudre? Je suppose que cela pourrait être une forme de caching de données effectuée par svnserve.exe , mais je n'ai trouvé aucun indice à ce sujet sur Internet.

Juste quelques questions pour vous …

  • Quelle est la taille de votre repository Subversion?
  • Combien commet, caisse et mise à jour par heure, jour, semaine?
  • Combien de trafic utilise l'autre machine?

Je ne suis pas vraiment un expert avec Windows en tout point, mais ça ressemble à une caching de quelque sorte ou votre référentiel est assez important, de sorte que les index nécessaires pour l'opérer classnt efficacement comme "gros" 🙂 Existe-t-il un moyen, comme avec Linux, pour voir comment la memory est allouée / utilisée en fonction de la procédure, peut-être à travers le Gestionnaire des tâches ou le moniteur de ressources?

Edit: Ce devrait être vraiment un commentaire à votre question, mais les commentaires semblent mangle tout le formatting et je voulais vraiment des points de balle pour les questions. 🙂

Vous voulez probablement déterminer combien de time cela prend exactement pour atteindre ce niveau d'utilisation de la memory. Est-ce simplement une question de time, ou pouvez-vous accélérer le process en effectuant plus d'engagement, ou en effectuant plus de check-outs, etc. Les memory leaks sont rares mais possibles et entraînent généralement des problèmes de performance. Ces problèmes les manifesteront à différents points pour différentes configurations. Le repository est-il plus lent après avoir atteint 200 Mo?

Dans la plupart des cas, la memory n'est pas «gaspillée». Il appartient au operating system de gérer globalement les allocations de memory, mais certaines applications peuvent avoir leur propre stratégie. Dans ce cas, SVN peut avoir un cache, mais il pourrait également allouer plus de memory pour qu'il s'agisse d'une allocation contiguë de memory. En général, le operating system devrait voir la pression de la memory et utiliser une gamme d'heuristiques pour s'assurer que d'autres applications continuent de fonctionner normalement.

Les choses que je voudrais essayer:

  • Utilisez Performance Monitor (perfmon.exe) pour capturer diverses statistics sur l'utilisation de la memory, etc.
  • Examinez le journal pour chaque référentiel pour voir quels types d'opérations ont eu lieu.
  • Redémarrer le service et exécuter un grand nombre de cotations, commet etc, en utilisant un script automatisé. Faites chacun de ces éléments indépendamment avant d'essayer un mélange des deux types d'opérations. Cela peut être less applicable si vous n'avez qu'une réplique pure d'un autre server de subversion.

C'est intéressant – je n'ai pas entendu parler d'une grande utilisation de la memory de Svnserve sur les lists de diffusion, peut-être que vous souhaitez publier ici .