Conseil de performance : Verrouiller la VRAM/RAM du modèle local avec LimitMEMLOCK=infinity

✍️ OpenClawRadar📅 Publié: September 16, 2026🔗 Source
Ad

Si votre modèle local tient dans la VRAM et la RAM cumulées, vous pouvez garder en mémoire résidente la mémoire du fournisseur de modèle en ajoutant LimitMEMLOCK=infinity sous l'en-tête [Service] de l'unité systemd de votre fournisseur. Le noyau arrête alors de paginer les poids du modèle sur le disque, ce qui est la principale cause de ralentissement une fois le modèle chargé.

Le fichier d'unité

Publié dans r/openclaw comme exemple fonctionnel pour LM Studio (modifiez les chemins et les noms d'utilisateur pour correspondre à votre installation) :

[Unit]
Description=LM Studio Server
RequiresMountsFor=/home

[Service] LimitMEMLOCK=infinity Type=oneshot RemainAfterExit=yes User=******** Environment="HOME=/home/" ExecStartPre=/home//.lmstudio/bin/lms daemon up ExecStartPre=/home//.lmstudio/bin/lms load text-embedding-bge-large-en-v1.5 --yes ExecStartPre=/home//.lmstudio/bin/lms load qwen3.6-35b-a3b-uncensored-hauhaucs-aggressive --yes ExecStart=/home//.lmstudio/bin/lms server start ExecStop=/home//.lmstudio/bin/lms daemon down

[Install] WantedBy=multi-user.target

Ad

Le rôle de chaque élément

  • LimitMEMLOCK=infinity — supprime la limite par processus de mlock par défaut, ce qui permet de garder le modèle chargé hors du swap/pagination.
  • ExecStartPre avec lms daemon up — démarre le démon LM Studio avant toute autre chose.
  • lms load <modèle> --yes — précharge chaque modèle au démarrage du service. L'exemple charge un modèle d'embedding (text-embedding-bge-large-en-v1.5) et un modèle de chat (qwen3.6-35b-a3b-uncensored-hauhaucs-aggressive).
  • lms server start en tant que ExecStart — lance le serveur compatible OpenAI.
  • lms daemon down en tant que ExecStop — nettoie à l'arrêt.
  • RequiresMountsFor=/home — garantit que la partition home contenant les fichiers de modèle est montée avant le démarrage du service.
  • Type=oneshot + RemainAfterExit=yes — l'unité est considérée comme active après la fin des commandes de démarrage, ce qui correspond à un démon géré séparément par le CLI lms.

Mise en garde

L'astuce suppose explicitement que le modèle tient dans la VRAM+RAM. Si ce n'est pas le cas, verrouiller la mémoire est le mauvais levier — vous ne ferez que déplacer le problème ailleurs. Une fois qu'il tient, le gain consiste à éviter les blocages dus à la pagination lors de l'inférence.

Pour l'appliquer : insérez le bloc dans votre fichier d'unité, puis exécutez systemctl daemon-reload et redémarrez le service. Les développeurs exécutant LM Studio en mode headless en tant que service systemd sont le public visé ici ; la même idée s'applique à tout processus fournisseur dont vous souhaitez épingler les poids en mémoire.

📖 Lire la source complète : r/openclaw

Ad

👀 See Also