La majeure partie de votre RAM est libre pour les applications, car elle est utilisée pour les tampons et la mise en cache. Regardez la ligne "-/+ buffers/cache:" pour voir la quantité de RAM qui est réelle utilisé/gratuit. Une explication peut être trouvée ici.
Pour vérifier si Python perd de la mémoire, surveillez la taille RSS de ce python (ou %mem) au fil du temps. Par exemple. écrivez un script shell qui est appelé depuis une tâche cron toutes les deux heures pour ajouter la sortie de votre ps
chaîne de commande et la sortie du free
commande dans un fichier.
Si vous trouvez que les processus Python sont fuite de mémoire, il y a plusieurs choses que vous pouvez faire ;
- Modifiez votre script pour qu'il existe après 24 heures et utilisez par ex. une tâche cron pour le redémarrer (la solution de facilité.)
- Examinez en profondeur Python lui-même et en particulier les modules d'extension que vous utilisez. Utilisez le
gc
module pour surveiller et influencer l'utilisation de la mémoire. Vous pouvez par ex. appeler legc.count()
régulièrement pour surveiller la quantité d'objets marqués pour la collecte. Vous pouvez appeler legc.collect()
explicitement et voyez si cela réduit l'utilisation de la mémoire. Vous pouvez également modifier le seuil de collecte.
Si l'utilisation de la RAM de Python n'augmente pas avec le temps, il pourrait s'agir d'un autre programme de démon. Le script de journalisation de la mémoire que j'ai mentionné ci-dessus devrait vous dire de quoi il s'agit.
Il peut également y avoir une autre raison pour laquelle votre ordinateur se bloque. Consultez les fichiers journaux de Linux pour trouver des indices.
Modifier : Puisque vous avez wpa_supplicant
en remplissant le fichier journal, vous devez vérifier l'état du ou des systèmes de fichiers. Un système de fichiers complet peut entraîner le blocage du système. Si vous n'utilisez pas l'interface sans fil, désactivez-la.