Beranda Blog Store
Artificial Intelegence

Menjalankan LLM Lokal dengan Ollama di VPS Ubuntu: Instalasi, Pemilihan Model, dan Uji Performa

23 Agu 2026 Hartono 5 menit baca 7 Dilihat

Rekan ArtonLabs, artikel ini ditulis untuk Anda yang ingin menjalankan model bahasa di VPS sendiri tanpa harus menjadi ahli kompilasi.

Menjalankan model bahasa di server sendiri dulu terdengar seperti proyek akhir pekan yang berakhir dengan kompilasi gagal. Ollama mengubahnya menjadi satu perintah instalasi dan satu perintah untuk menjalankan model. Tulisan ini menjelaskan cara memasangnya di Ubuntu, model mana yang masuk akal untuk VPS tanpa GPU, bagaimana mengukur kecepatannya, dan beberapa pengaturan yang membuat perbedaan besar.

Daftar Isi

Kenapa LLM Lokal?

Tiga alasan yang paling sering kami dengar dari klien: data tidak boleh keluar (dokumen internal, data mahasiswa, rekam medis), biaya per token yang sulit diprediksi saat pemakaian membesar, dan kebutuhan berjalan offline. Model lokal tidak sepintar model cloud terbesar, tetapi untuk tugas yang terbatas dan terdefinisi dengan baik, misalnya merangkum, mengklasifikasi, atau menjawab dari dokumen sendiri, model 7 sampai 8 miliar parameter sudah sangat berguna.

Instalasi Ollama di Ubuntu

Satu perintah dari dokumentasi resmi:

curl -fsSL https://ollama.com/install.sh | sh

Skrip itu memasang binary, membuat pengguna sistem ollama, dan mendaftarkan layanan systemd. Pastikan layanannya aktif dan hidup saat boot:

sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl start ollama
systemctl status ollama

Secara bawaan Ollama mendengarkan di 127.0.0.1:11434, jadi hanya proses di server yang sama yang bisa memanggilnya. Model disimpan di /usr/share/ollama/.ollama/models; kalau disk sistem Anda kecil, pindahkan dengan variabel OLLAMA_MODELS (cara mengaturnya ada di bawah).

Memilih Model untuk VPS Tanpa GPU

Aturan praktisnya: model yang dikuantisasi 4-bit membutuhkan RAM kira-kira 0,6 sampai 0,7 GB per miliar parameter, ditambah ruang untuk konteks. Jadi model 8B butuh sekitar 5 sampai 6 GB RAM bebas; model 3B sekitar 2,5 GB; model 1B bisa berjalan di VPS 2 GB. Ollama mengunduh varian kuantisasi yang sudah dipilih dengan baik secara bawaan, sehingga Anda jarang perlu memikirkan formatnya.

Pendekatan kami: mulai dari model kecil untuk memastikan alurnya benar, lalu naik sampai kualitasnya cukup atau RAM-nya habis. Di VPS 4 GB, model 3B adalah batas nyaman. Di 8 GB, model 7 sampai 8B berjalan tetapi lambat tanpa GPU, kira-kira beberapa token per detik di CPU 4 inti. Untuk tugas latar yang tidak menunggu manusia, kecepatan itu sering kali sudah cukup.

ollama pull qwen3:8b
ollama pull gemma4
ollama list

Perhatikan juga jendela konteks. Bawaan Ollama adalah 4096 token. Untuk merangkum dokumen panjang atau dipakai sebagai otak agen seperti OpenClaw, naikkan lewat OLLAMA_CONTEXT_LENGTH atau parameter num_ctx di API, dengan catatan konteks yang lebih panjang memakan RAM lebih banyak.

Perintah Sehari-hari

ollama run qwen3:8b          # obrolan interaktif di terminal
ollama pull nama-model       # unduh model
ollama list                  # model yang sudah ada
ollama ps                    # model yang sedang dimuat, CPU atau GPU
ollama rm nama-model         # hapus model

ollama ps berguna untuk memastikan di mana model berjalan. Di VPS tanpa GPU ia akan menunjukkan 100% CPU, dan itu normal.

Memakai API-nya

Ollama menyediakan REST API di port 11434. Contoh paling sederhana dengan curl:

curl http://127.0.0.1:11434/api/generate -d '{
  "model": "qwen3:8b",
  "prompt": "Jelaskan apa itu reverse proxy dalam dua kalimat.",
  "stream": false
}'

Untuk percakapan dengan riwayat, pakai /api/chat dengan daftar messages. Ada juga pustaka Python resmi (pip install ollama) yang membungkus keduanya. Kami membahas cara membangun API chat sendiri di atasnya pada artikel terpisah.

Mengukur dan Menyetel Performa

Ollama melaporkan statistik setiap respons: jumlah token yang dihasilkan dan durasinya. Jalankan ollama run model --verbose dan perhatikan nilai eval rate dalam token per detik. Itu angka yang paling jujur untuk membandingkan model atau server.

Beberapa hal yang kami temukan berpengaruh. Pertama, jumlah thread: Ollama memakai inti CPU yang tersedia, jadi VPS dengan lebih banyak vCPU terasa langsung. Kedua, memori: kalau model tidak muat di RAM dan mulai memakai swap, kecepatan jatuh drastis; lebih baik model yang lebih kecil daripada model besar yang ter-swap. Ketiga, konteks: konteks 32K pada model 8B bisa menambah beberapa gigabyte pemakaian memori. Keempat, model tetap dimuat di memori selama beberapa menit setelah dipakai; untuk server yang berbagi dengan aplikasi lain, ini perlu diperhitungkan.

Membuka ke Jaringan dengan Aman

Kalau aplikasi di server lain perlu memanggil Ollama, ubah alamat dengarnya lewat drop-in systemd, bukan dengan menyunting unit aslinya:

sudo mkdir -p /etc/systemd/system/ollama.service.d
sudo tee /etc/systemd/system/ollama.service.d/override.conf > /dev/null <<'EOF'
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/data/ollama/models"
EOF
sudo systemctl daemon-reload
sudo systemctl restart ollama

Ollama tidak punya autentikasi bawaan. Jadi jangan pernah membuka port 11434 ke internet. Batasi dengan firewall ke alamat klien yang dikenal, atau letakkan di belakang reverse proxy Nginx yang meminta token. Di lingkungan VinzaPanel, kami memakai aturan firewall dari panel untuk membatasinya ke alamat server aplikasi saja.

Menjaga Memori: Keep-alive dan Beberapa Model

Setelah dipakai, model tetap dimuat di memori selama lima menit secara bawaan, supaya permintaan berikutnya tidak menunggu pemuatan ulang. Di server yang berbagi dengan aplikasi lain, atur lewat OLLAMA_KEEP_ALIVE (misalnya 30m untuk layanan yang ramai, atau 0 agar langsung dilepas) dan batasi jumlah model yang boleh dimuat bersamaan dengan OLLAMA_MAX_LOADED_MODELS=1. Keduanya dipasang di drop-in systemd yang sama seperti di atas. Dengan dua model 8B yang dimuat bersamaan, VPS 8 GB akan mulai swap; satu model saja yang dimuat adalah pengaturan yang aman.

Kalau Anda selalu memakai prompt sistem yang sama, buat model turunan dengan Modelfile supaya klien tidak perlu mengirimnya tiap kali:

cat > Modelfile <<'EOF'
FROM qwen3:8b
PARAMETER num_ctx 16384
SYSTEM "Anda asisten yang menjawab ringkas dalam bahasa Indonesia."
EOF
ollama create asisten-id -f Modelfile
ollama run asisten-id
berubah dari proyek riset menjadi soal memilih model dan ukuran VPS. Mulailah kecil, ukur dengan --verbose, dan naikkan hanya kalau kualitasnya belum cukup. Untuk yang ingin menekan kebutuhan RAM lebih jauh lagi, artikel tentang kuantisasi GGUF dengan llama.cpp membahas apa yang terjadi di balik layar.

Terima kasih sudah membaca. Ceritakan model apa yang akhirnya Anda pilih dan di VPS sebesar apa; pengalaman Anda berguna bagi pembaca lain.