Brahim Bousnguar

Notes · Note courte

macOS m’a menti sur la mémoire de Docker

Par · · 1 min de lecture

La répartition mémoire du tableau de bord de mon Mac mini essaie d’abord l’USS, puis se rabat sur une autre mesure. Sauf que macOS refuse l’USS pour 976 processus sur 977 : tout le graphique en anneau tournait donc en silence sur le RSS.

La solution : utiliser l’empreinte physique, via proc_pid_rusage → ri_phys_footprint. C’est exactement le chiffre qu’affichent la colonne MEM de top et le Moniteur d’activité. L’empreinte compte les pages compressées à leur taille d’origine, donc les parts peuvent maintenant dépasser « used » au lieu d’être réduites pour tenir dedans. Dans ce cas, elles gardent leur vraie taille et la part Other affiche 0.

Ollama avait son propre bug : il était compté comme l’empreinte du runner plus la mémoire GPU du modèle chargé, soit un double comptage, puisque l’empreinte d’un runner contient déjà les buffers Metal de son modèle. Désormais, on retient la plus grande des deux valeurs.

Sur une instance de test, la part Docker affichait 11,22 Go, contre 11,23 Go additionnés à la main depuis top. La prod affichait 9,82 Go pour les mêmes processus, après avoir réduit le RSS en silence.

143 tests passent, dont un nouveau rien que pour le calcul de l’empreinte.

Texte brut: mac-memory-footprint-not-rss.md · Flux Atom · Toutes les notes

Contact

Écrivez-moi.

b.bousnguar@gmail.com

Intégration SAP Commerce Cloud, MuleSoft et Salesforce · Nantes · FR / EN