성능 팁: LimitMEMLOCK=infinity로 로컬 모델 VRAM/RAM 고정

✍️ OpenClawRadar📅 게시일: September 16, 2026🔗 Source
Ad

로컬 모델이 VRAM과 RAM을 합친 용량 안에 들어간다면, 해당 프로바이더의 systemd 유닛에서 [Service] 헤더 아래에 LimitMEMLOCK=infinity를 추가하여 모델 프로바이더의 메모리를 상주시킬 수 있습니다. 그러면 커널이 모델 가중치를 디스크로 페이징하는 것을 중단하며, 모델이 로드된 후 발생하는 대부분의 속도 저하가 바로 여기서 비롯됩니다.

유닛 파일

r/openclaw에 LM Studio용으로 작동하는 예시가 게시되었습니다(경로와 사용자 이름은 설치 환경에 맞게 수정하세요):

[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

각 부분의 역할

  • LimitMEMLOCK=infinity — 기본 프로세스별 mlock 상한을 제거하여, 로드된 모델이 스왑/페이징되지 않도록 유지합니다.
  • lms daemon up이 포함된 ExecStartPre — 다른 무엇보다 먼저 LM Studio 데몬을 시작합니다.
  • lms load <model> --yes — 서비스 시작 시 각 모델을 미리 로드합니다. 예시에서는 임베딩 모델(text-embedding-bge-large-en-v1.5)과 채팅 모델(qwen3.6-35b-a3b-uncensored-hauhaucs-aggressive)을 로드합니다.
  • ExecStart로 실행되는 lms server start — OpenAI 호환 서버를 구동합니다.
  • ExecStop으로 실행되는 lms daemon down — 종료 시 정리합니다.
  • RequiresMountsFor=/home — 모델 파일이 있는 홈 파티션이 서비스 시작 전에 마운트되도록 보장합니다.
  • Type=oneshot + RemainAfterExit=yes — 시작 명령이 끝난 후에도 유닛이 활성 상태로 간주되며, 이는 lms CLI가 별도로 관리하는 데몬에 적합합니다.

주의사항

이 팁은 모델이 VRAM+RAM에 들어간다고 명시적으로 가정합니다. 그렇지 않다면 메모리를 잠그는 것은 잘못된 선택입니다. 문제를 다른 곳으로 밀어낼 뿐입니다. 모델이 들어맞기만 하면, 추론 시 페이징으로 인한 지연을 피하는 것이 이점입니다.

적용하려면: 유닛 파일에 이 블록을 넣은 다음 systemctl daemon-reload를 실행하고 서비스를 재시작하세요. LM Studio를 systemd 서비스로 헤드리스 실행하는 개발자가 여기 주요 대상입니다. 동일한 아이디어는 가중치를 메모리에 고정하려는 모든 프로바이더 프로세스에 적용됩니다.

📖 전체 출처 읽기: r/openclaw

Ad

👀 See Also

클로드 코드에서 훅을 사용하여 클로드의 시간 환각 문제 해결하기
Tips

클로드 코드에서 훅을 사용하여 클로드의 시간 환각 문제 해결하기

한 사용자가 Claude Code가 실시간 시계 접근 권한이 없어 부적절한 시간에 '좀 쉬세요'와 같은 조언을 잘못 제시하는 문제를 발견했습니다. 해결책은 ~/.claude/settings.json에 한 줄의 훅을 추가하여 모든 메시지에 현재 시간을 Claude의 컨텍스트에 주입하는 것입니다.

OpenClawRadar
디자인 시스템으로 Claude Code의 CSS 추측 작업을 수정하는 방법
Tips

디자인 시스템으로 Claude Code의 CSS 추측 작업을 수정하는 방법

한 개발자가 Claude Code를 사용하여 주식 분석 대시보드를 구축하면서 흔히 겪는 좌절을 경험했습니다: AI가 동일하게 정렬이 틀어진 div에 대해 반복적으로 깨진 CSS를 생성한 것입니다. 6번의 반복 동안 패딩 수정, flex에서 grid로 전환, 그리고 `overflow: hidden` 추가 시도는 실패하거나 문제를 더 악화시켰습니다.

OpenClawRadar
OpenClaw LLM 콜드 모델 로딩 타임아웃 수정
Tips

OpenClaw LLM 콜드 모델 로딩 타임아웃 수정

Reddit 사용자가 OpenClaw에서 차갑게 로드된 로컬 LLM이 더 높은 일반 타임아웃이 설정되어 있음에도 약 60초 후에 실패하는 특정 타임아웃 문제를 식별하고 수정했습니다. 해결책은 embedded-runner LLM 유휴 타임아웃 구성을 조정하는 것입니다.

OpenClawRadar
모든 프롬프트에 모든 MCP 서버를 로딩하면 조용히 토큰 예산이 소진된다
Tips

모든 프롬프트에 모든 MCP 서버를 로딩하면 조용히 토큰 예산이 소진된다

5~6개의 MCP 서버를 사용하는 한 사용자는 각 프롬프트가 모든 서버를 로드하여 막대한 토큰 낭비를 초래한다는 사실을 발견했습니다. 관련 서버만 로드하는 라우팅 레이어를 구현함으로써 토큰 사용량이 크게 줄고 응답 시간이 개선되었습니다.

OpenClawRadar