GNU/Linux >> Tutoriels Linux >  >> Linux

DotNet Core 2.1 thésaurisation de la mémoire sous Linux

Le problème était la connexion à RabbitMQ. Parce que nous utilisions des canaux vivants triés, la fonction "reconnexion automatique" de RabbitMQ.Client gardait beaucoup d'état sur les canaux morts. Nous avons désactivé cette configuration, car nous n'avons pas besoin des "avantages" de la fonction "reconnexion automatique", et tout commence à fonctionner normalement. C'était pénible, mais nous devions essentiellement configurer un déploiement Windows et effectuer le processus d'analyse de mémoire habituel avec les outils Windows (Jetbrains dotMemory dans ce cas). L'utilisation de lldb n'est pas du tout productive.


Avis de non-responsabilité :je ne suis pas un assistant .NET.

Mais vous devez faire deux choses pour suivre les bonnes pratiques de Kubernetes :

  1. Définissez des limites de ressources raisonnables pour votre application. Si l'application n'a pas besoin de plus de 200 Mo de mémoire, définissez une limite de ressources pour empêcher l'application de consommer toute la mémoire hôte disponible. Mais sachez que l'API Unix pour obtenir de la mémoire disponible n'est pas capable de traiter le groupe de contrôle dont dispose le processus et génère toujours la mémoire de l'hôte, peu importe ce que dit votre groupe de contrôle.

  2. Indiquez à votre application quelle est cette limite de ressources. Il semble que votre application ne "ressent pas le besoin" de libérer de la mémoire car il y en a beaucoup. Presque toutes les applications, et les frameworks également, disposent d'un switch pour définir la mémoire maximale à consommer. Dites à votre application cette limite, et elle "verra" la pression de la mémoire et effectuera un GC complet (ce qui, je suppose, pourrait être le problème ici)


Linux
  1. Utilisation de la mémoire Linux

  2. Comment ouvrir Appimage sous Linux

  3. Comment effacer le cache mémoire sous Linux

  4. Linux - Utilisation réelle de la mémoire ?

  5. Mémoire inactive Linux

Comment effacer la mémoire d'échange sous Linux

Essayer .NET Core sur Linux avec juste une archive tar (sans apt-get)

exemples de commandes gratuits sous Linux

Comment installer (.NET Core) Dotnet Core sur les distributions Linux

Comment compiler l'application .NET Core pour Linux sur une machine Windows

Segmentation de la mémoire Linux