0xFF
젯슨 나노에서 Ollama 서버 구동 본문
curl -fsSL <https://ollama.com/install.sh> | sh
위와 같이 Ollama 설치 이후
ollama run ed-neo4j/t2c-gemma3-4b-it-q8_0-35k --verbose
위와 같이 t2c-gemma3-4b-it-q8_0-35k 모델을 설치한다.
오피셜 gemma3:4b를 사용하지 않은 이유는 위 모델이 Q8_0 양자화 적용으로 오피셜 4b 모델의 Q4_K_M 양자화 대비 약간 더 성능이 높을 것이라 판단했기 때문이다.
개발 완료 후 성능보다 속도가 더 중요하다고 판단되면 더 가벼운 모델로도 바꿔봐야겠다.
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_KEEP_ALIVE=-1"
Environment="OLLAMA_NUM_PARALLEL=2"
[Install]
WantedBy=default.target
외부 호스트 접속이 가능하도록 하기 위해 /etc/systemd/system/ollama.service 파일을 열고 환경 변수를 추가한다.
Environment="OLLAMA_HOST=0.0.0.0:11434"
또한 모델 로드 후 자동으로 언로드되지 않고 유지되도록 아래와 같은 변수도 추가한다.
Environment="OLLAMA_KEEP_ALIVE=-1"
모델별 병렬 추론 스레드 수의 기본값은 1이므로 아래와 같이 설정하여 2로 늘린다.
Environment="OLLAMA_NUM_PARALLEL=2"
[Unit]
Description=Load default model Ollama
After=ollama.service
Requires=ollama.service
[Service]
Type=oneshot
ExecStartPre=/bin/bash -c 'until curl -s <http://localhost:11434> > /dev/null; do echo "Waiting.."; sleep 2; done'
ExecStart=/usr/bin/curl <http://localhost:11434/api/generate> -d '{"model": "ed-neo4j/t2c-gemma3-4b-it-q8_0-35k:latest", "prompt": "hi?", "stream": false}'
TimeoutStartSec=300
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Ollama는 최초 HTTP 요청시 지정한 모델을 메모리에 올리기 위해 시간이 다소 필요하다.
젯슨 오린 나노에서 약 5GB 모델 기준으로 약 1분 정도가 소요되는 것을 확인할 수 있었는데,
이러한 지연을 최소화하기 위해 부팅 직후 사용할 모델이 캐싱되어 있도록 위와 같이 별도의 서비스를 만들어 구성하였다.
서비스의 내용은 Ollama 서버가 실행될때까지 2초 간격으로 폴링을 실행하며 대기하다가 실행이 완료되면 ‘hi?’ 라는 간단한 프롬프트에 대한 completion을 요청하여 모델이 메모리에 상주되도록 하는 것이다.
돌아가는 방법이긴 하지만 직접적으로 특정 모델을 메모리에 상주시키는 방법을 찾지 못하여 이렇게 조치하였다.
'LINUX' 카테고리의 다른 글
| USB Wi-Fi 어댑터 접촉불량에 의한 AP 접속 불안정 문제 (0) | 2026.04.26 |
|---|---|
| hostapd와 dnsmasq를 이용한 Wi-Fi AP 및 Captive Portal 테스트 (0) | 2026.02.24 |
| 젯슨 나노 단독망 네트워크 구성 (0) | 2026.02.22 |
| Dragon Q6A Armbian에서 spidev 활성화 (0) | 2026.02.08 |
| QCS6490 Linux Host에서 LLM 구동 실험 (0) | 2026.02.05 |