0
votes

Comment obtenir les statistiques de mémoire de KentiCo via C # Code C #?

Fond

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.

 Entrez la description de l'image ici

Question

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.

Informations additionnelles
  • kentico version 9.0.42, hébergé à Azure, échelonné à 2 instances.
  • L'utilisation de la mémoire de la mémoire du plan de service de l'application (dans Azure) était à environ 50% environ - cette règle définit une alerte à ce niveau.

    merci!


0 commentaires

4 Réponses :


-1
votes

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.


1 commentaires

Il semble que j'avais mal au sujet de l'API Kentico. Voir la réponse de @ Michal.



1
votes

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 et créer vos propres alertes basées sur ces comptoirs.


0 commentaires

1
votes

Si vous regardez le code sur la page du système, vous trouverez votre réponse. Accédez à /cmsmodules/system/controls/system.ascx.cs Fichier et recherchez Memory.text . Vous trouverez plusieurs méthodes SystemHelper pour obtenir les valeurs pour vous.

systemhelper.getvirtualMemorySize ()
SystemHelper.getworkingSetSIsize ()
SystemHelper.getpeakworkingSetSIsize ()


0 commentaires

0
votes

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.


0 commentaires