Je suis récemment rencontré une exception hors mémoire lorsque les utilisateurs visiteraient quelques pages de mon site Web Kentico. Avance rapide - J'ai trouvé que la mémoire allouée (système> General) était supérieure à 2 Go! Je suis ensuite allé à déboguer> Clare Cache, puis remarqua la mémoire allouée assis environ 400 Mo (PHEW ..). Maintenant, lorsque les utilisateurs visiteraient la page, cela fonctionnerait sans aucune exception de mémoire de mémoire. p>
Y a-t-il une façon de pouvoir obtenir ces statistiques de mémoire via le code (idéalement C #)? Je pense à pouvoir surveiller régulièrement ces statistiques de mémoire et à déclencher une alerte (envoyer un courrier électronique / post sur Webhook à partir de mon code C #) lorsque la mémoire allouée devient trop élevée. P>
merci! p>
4 Réponses :
Il ne semble y avoir rien dans l'API Kentico qui accéderait aux statistiques de la mémoire, mais peut-être que ceci Réponse va vous aider. P>
Il semble que j'avais mal au sujet de l'API Kentico. Voir la réponse de @ Michal.
Vous pouvez utiliser SystemHelper classe pour obtenir des statistiques et données de mémoire. Il repose toujours surtout sur .NET processus et ses propriétés. Si vous êtes sur Azure, vous pouvez utiliser ci-dessus avec performanceCounters pour enregistrer votre propre Ensembles d'informations dans des perspectives d'application a> et créer vos propres alertes basées sur ces comptoirs. P>
Si vous regardez le code sur la page du système, vous trouverez votre réponse. Accédez à /cmsmodules/system/controls/system.ascx.cs code> Fichier et recherchez
Memory.text Code>. Vous trouverez plusieurs méthodes
SystemHelper CODE> pour obtenir les valeurs pour vous. P>
systemhelper.getvirtualMemorySize () code>
SystemHelper.getworkingSetSIsize () Code>
SystemHelper.getpeakworkingSetSIsize () code> p>
Il est recommandé par KentiCo de redémarrer votre application une fois par 24 heures. Je vous suggère que vous planifiez le redémarrage de vos instances une après une autre fois pendant la nuit. P>