AI VIDEO BRIEFING
로컬 LLM 속도 최적화: Ollama·llama.cpp 동시성과 다중 인스턴스로 처리량 높이기
혼자 대화할 땐 초당 100~120토큰이지만 코드 에이전트처럼 동시 요청이 몰리면 이야기가 달라진다. Ollama와 llama.cpp의 차이, 동시성·병렬·다중 인스턴스로 로컬 LLM 처리량을 열 배 넘게 끌어올리는 방법을 정리했다.

핵심 메시지
쉽게 이해하기
알렉스 지스킨드는 로컬 LLM을 돌리는 대표 도구인 Ollama부터 보여준다. Quen 34B 모델로 대화하면 초당 약 100토큰이 나온다. Ollama는 내부적으로 llama.cpp 위에서 동작하며 약간의 오버헤드가 있고, llama.cpp 서버(llama-server)를 직접 띄워 같은 모델을 쓰면 초당 124토큰으로 조금 더 빠르다.
문제는 이것이 '한 번에 한 요청'인 대화 시나리오라는 점이다. 코드 어시스턴트나 에이전트는 그렇게 동작하지 않는다. 저자는 노트북에서 맥 스튜디오의 llama-server로 원격 요청을 보내는 스크립트를 돌리는데, 순차 요청에서는 초당 120토큰 안팎으로 큰 차이가 없다.
그러나 동시성을 128로 올리자 llama.cpp에서 초당 826토큰까지 치솟는다. 동시성 없이도 231토큰으로 더 낫지만, llama.cpp 단독은 감당할 수 있는 동시 연결 수에 한계가 있어 vLLM 같은 엔진만큼은 못 간다.
저자는 'Llama Throughput Lab'이라는 파이썬 런처를 만들어 인스턴스 수, parallel 값, 동시성 등 여러 손잡이를 조합해 기기가 낼 수 있는 최적점을 탐색한다. 단일 요청, 동시 요청, 그리고 308가지 조합을 훑는 풀 스윕 테스트를 제공하며 결과는 깃허브에 공개돼 있다.
가장 큰 도약은 llama 서버를 여러 번 띄우는 다중 인스턴스에서 나온다. 저자는 16개 인스턴스에 parallel 64, 동시성 1,024로 초당 1,226토큰을 기록했다. 앞단에 nginx를 두어 들어오는 요청을 서버들에 라운드로빈으로 분산하면, 512GB 통합 메모리 같은 강력한 기기의 자원을 훨씬 잘 활용할 수 있다.
주요 인사이트
- 로컬 LLM 성능을 '대화 속도'로만 판단하면 오해한다. 에이전트처럼 동시 요청이 몰리는 실제 워크로드에서는 처리량(throughput)이 진짜 지표다.
- 동일한 모델·하드웨어라도 동시성과 다중 인스턴스 설정만으로 처리량이 초당 100토큰대에서 1,000토큰 이상으로 열 배 넘게 벌어진다.
- 이 기기의 한계는 512GB에 이르는 통합 메모리가 아니라 GPU 연산이다. 여러 llama 서버를 동시에 돌릴 때도 메모리보다 GPU 컴퓨트가 먼저 걸린다.
- 벤치마크 수치는 방향을 가리킬 뿐이므로, 실제 사용 시나리오로 직접 측정해 최적 조합을 찾아야 한다.
- nginx 라운드로빈은 여러 llama 서버 앞에 놓여 요청을 번갈아 넘기는 얇은 패스스루 계층으로, 다중 인스턴스를 실전에서 묶어주는 핵심 조각이다.
자주 묻는 질문
Ollama와 llama.cpp 서버 중 무엇이 더 빠른가요?
영상 실험에서는 llama.cpp 서버를 직접 띄운 쪽이 같은 Quen 34B 모델에서 초당 124토큰으로, Ollama의 약 100토큰보다 조금 빨랐습니다. Ollama가 llama.cpp 위에서 돌며 약간의 오버헤드를 더하기 때문입니다.
동시성만 높이면 처리량이 무한히 늘어나나요?
아닙니다. 동시성을 올리면 처리량이 크게 오르지만 llama.cpp 단독이 감당하는 동시 연결에는 한계가 있습니다. 더 큰 도약은 llama 서버 인스턴스를 여러 개 띄우고 nginx 라운드로빈으로 요청을 분산할 때 나옵니다.
왜 로컬 LLM 처리량 최적화가 필요한가요?
혼자 대화할 때는 순차 속도면 충분하지만, 코드 어시스턴트나 여러 에이전트를 함께 돌리면 수십~수백 개 요청이 동시에 발생하기 때문입니다. 이럴 때 동시성과 다중 인스턴스 설정이 대기 시간을 크게 줄여줍니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗