Dans mon précédent post j’explique comment installer et configurer un serveur TFS proxy.
Pour rappel un serveur TFS proxy est utile pour des raisons de performances dans le cas d’une équipe de développeurs travaillant sur un site distant.
Après avoir installé et configuré le serveur TFS proxy on peut le configurer plus finement en modifiant le fichier proxy.config
Le fichier proxy.config
Ce fichier qui est au format XML se trouve sur le serveur TFS proxy dans le répertoire :
Program Files /Microsoft Team Foundation Server 12.0/Version Control Proxy/Web Services/VersionControlProxy/
Une fois ouvert voici son contenu
Pour pouvoir modifier ce fichier il faut faire partie du groupe Administrateurs du groupe local du serveur TFS proxy.
Voici un détail des différentes balises :
La balise Servers
Elle contient la liste des Urls des serveurs TFS que le serveur TFS proxy va mettre en cache. Ces Urls sont réparties par serveur avec la balise Server
Si dans l’url on précise le nom de la collection, le serveur ne mettra en cache uniquement cette collection, sinon il mettre en cache toutes les collections du serveur.
Par default l’url renseignée et celle choisie lors de la configuration du serveur TFS proxy par la console d’administration
Par exemple
Pour toutes les collections de ce serveur
<Servers> <Server> <Uri>http://vaslm:8080/tfs</Uri> </Server> </Servers>
Uniquement pour la Defaultcollection de ce serveur
<Servers> <Server> <Uri>http://vaslm:8080/tfs/defaultcollection</Uri> </Server> </Servers>
Dans ces 2 exemples le serveur proxy mettra en cache les fichiers que d’un serveur.
Voici un exemple pour qu’il puisse en cache le source control de plusieurs serveurs TFS
<Servers> <Server> <Uri>http://vsalm:8080/Tfs/Collection0</Uri> </Server> <Server> <Uri>http://tfsserver2:8080/Tfs/</Uri> </Server> </Servers>
Pour déconnecter un serveur TFS proxy à un serveur TFS, il suffit de supprimer la balise <Server> correspondant.
Les fichiers déjà mise en cachent seront supprimés lors du prochain nettoyage.
La balise CacheRoot
<CacheRoot>C:\Program Files\Microsoft Team Foundation Server 12.0\Version Control Proxy\_tfs_data</CacheRoot>
Cette balise contient le chemin du répertoire dans lequel le cache est stocké.
La balise CacheLimitPolicy
Elle contient la limite d’espace disque du cache
Soit en pourcentage avec la clé <PercentageBasedPolicy>75</PercentageBasedPolicy>, ici le cache sera nettoyé lorsque le cache aura atteint 75% de l’espace disque
soit en taille fixe (en MO) avec la clé <FixedSizeBasedPolicy>500</FixedSizeBasedPolicy>, ici le cache est limité à 500 MO
Attention, les 2 clés ne peuvent pas être toutes les 2 présentent
La balise DelegationAgeThresold
Elle contient le nombre de jours avant que le cache soit nettoyé, par exemple
<DelegationAgeThresold>30</DelegationAgeThresold>
pour 30 jours de rétention.
La balise StatisticsPersistTime
<StatisticsPersistTime>1</StatisticsPersistTime>
Elle contient l’intervalle en heures auquel les statistiques du cache sont mises à jour sur le fichier qui se trouve sur le disque.
Après avoir fait une modification dans ce fichier proxy.config il faut faire un IISRESET en ligne de commande afin qu’elles soient bien prise en compte par le serveur IIS de TFS.
Examiner les performances du cache
Une fois le cache configuré, il est important de vérifier fréquemment ses performances. Voici un exemple de données statistiques que l’on peut voir
- La taille du cache
- Le nombre de hit du cache
- Nombre de download
- Nombre de fichiers dans le cache
Ces données se trouvent dans le fichier ProxyStatistics.xml, et sont affichées soit par le moniteur de performance soit en appelant le web service ProxyStatistics
Par le moniteur de performance
Dans le moniteur de performance ajouter le compteur TFS Proxy server
Par le web service ProxyStatistics
En local sur le serveur TFS, dans un navigateur ouvrir l’url : http://localhost:8081/tfs/VersionControl/v1.0/proxystatistics.asmx.
Cliquer et invoquer la méthode QueryProxyStatistics
Le résultat s’affiche sous format XML
<ProxyStatisticsInfo CurrentCacheSize="356352" NoOfRequests="82" OverallCacheHits="41" NoOfFilesInCache="41" OverallCacheMisses="41" CacheHitsPercentage="50" CacheMissPercentage="50" ..." />