2009-08-24 8 views
1

Nous avons une application web avec l'équilibrage de charge dans deux machines avec un serveur java (tomcat), ColdFusion et Apache en face.fichier cf.registry avec des tailles différentes

Il y a quelque temps nous constatons que le fichier cfregistry ont une taille différente dans les deux serveurs: 89MB dans un seul et 44MB dans d'autres.

Il est normal d'avoir cette taille? C'est normal qu'ils aient la taille si différente?

Merci d'avance.

Répondre

1

Client ColdFusion par défaut de stockage variable au Registre sous Windows, et pour les plates-formes Unix/Linux est utilisé par défaut le fichier cf.registry. La raison en est une facilité d'utilisation prête à l'emploi, mais en production, c'est un tueur silencieux qui ralentira ColdFusion comme de la mélasse, et Unix écrase complètement le serveur lorsque le fichier cf.registry devient trop grand. En fait, ColdFusion analyse, lit et écrit le fichier pour chaque requête utilisant des variables client (même si aucune n'est utilisée dans le code mais que l'attribut clientmanagement de cfapplication est activé). C'est un peu comme traiter un fichier plat comme une base de données. C'est très intensif en IO, et dans mes années de support technique ColdFusion pour Allaire/Macromedia/Adobe, j'ai résolu de nombreux cas de crash/arrêt de serveurs à cause de ce problème. En bref, arrêtez ColdFusion, renommez le fichier cf.registry existant, et copiez à sa place un fichier propre/nouveau cf.registry de n'importe quel autre serveur ColdFusion (même l'édition Developer/Trial est très bien). Attention: Si vous copiez dans un nouveau fichier sans arrêter ColdFusion, le serveur a déjà une copie de l'original en mémoire et l'écrira dans le nouveau fichier cf.registry à l'arrêt, et vous aurez à nouveau le problème original. Même si vous modifiez le mécanisme de clienttorage pour utiliser une base de données ou autrement, vous devez toujours nettoyer le fichier cf.registry existant car ColdFusion continuera à l'analyser régulièrement car il passe par le processus d'expiration des variables client qui sont obsolètes .

Il existe une technique Adobe pour nettoyer le registre des variables client. Il fonctionne comme une chaîne où il est lancé dans un navigateur, il supprime 100 variables client, se rafraîchit et en supprime 100 autres. Cela peut prendre des heures. Ne l'utilisez pas lorsque vous avez de grandes données variables client dans le registre/cf.registry. Nettoyez simplement les fichiers existants de register. Enfin, sur Windows ColdFusion, il y aura rarement un crash dû à ce problème. Il restera juste en boitant, plus lent et plus lent. Sous Unix/Linux, cela ne va pas plus loin que de bloquer le processus.

+0

Merci Steven. Votre réponse était parfaite! – foxtrot

0

Je crois que ce fichier est pour le stockage client sous * nix.

Vous devez configurer votre application pour utiliser DB comme stockage de portée client.

Est-il normal d'avoir une taille différente? Je le pense.

Questions connexes