Skip to content

Kenapa Saya Hapus Fallback CPU Ollama di Compose

Adityo Guni Waluyo

Dua commit, dua menit: fallback CPU buat Ollama kutulis lalu kuhapus. Fallback yang butuh runbook itu bukan mitigasi.

<!-- qwen-article.py | 2026-09-11T18:50:34 | chat: -->

Meta (untuk sistem): Pengalaman pribadi menghapus konfigurasi fallback CPU Ollama di Docker Compose karena degradasi otomatis sudah tersedia dan fallback manual justru menambah kompleksitas. Slug (untuk sistem): hapus-fallback-cpu-ollama-docker-compose

Dua commit berturut-turut. Jaraknya cuma dua menit. Commit pertama menambahkan 109 baris kode, commit kedua menghapus 21 baris sisanya. Awalnya saya pikir saya jenius karena menyiapkan service ollama-cpu sebagai cadangan manual saat GPU NVIDIA mati. Tapi begitu melihat ulang komentar di file docker-compose.yml sendiri, saya sadar ini bukan mitigasi. Ini jebakan. Komentar itu sendiri menulis: "matikan service ollama dulu, mereka pakai port yang sama", lalu jalankan manual dengan --profile cpu-fallback. Prosedur darurat yang butuh ketenangan membaca dokumentasi bukanlah fallback — itu beban.

Ilusi Port dan Volume yang Berebut Sumber Daya

Desain awal saya menambahkan service dengan restart manual, profile cpu-fallback, dan port 11434 di mesin host. Masalahnya, Ollama secara default mengikat port 11434 [2]. Memaksa dua service berbagi volume data yang sama sambil berebut port yang sama adalah resep konflik. Saat GPU tiba-tiba drop, saya harus menghentikan container utama secara manual sebelum menghidupkan yang CPU. Di tengah insiden, otak nggak bakal bekerja secerdas itu. Saya malah panik mencari perintah yang tepat buat mematikan kontainer utama.

Degradasi Otomatis yang Selama Ini Saya Abaikan

Fakta yang saya lewatkan: Ollama sudah punya mekanisme degradasi bawaan. Ketika dia tidak bisa mendeteksi GPU NVIDIA, sistem ini otomatis mundur ke CPU [1]. Bahkan setelah proses suspend/resume di Linux, dia bisa fallback ke CPU dengan sendirinya. Kalau pun saya ingin memaksa mode CPU, saya cukup menyuntikkan variabel lingkungan CUDA_VISIBLE_DEVICES dengan nilai yang tidak valid, tanpa perlu menduplikasi seluruh service di orchestration layer. Ditambah lagi, profil di Docker Compose memang dirancang bersifat opt-in. Service dengan profil tertentu akan dilewati saat docker compose up biasa dijalankan, kecuali ditargetkan secara eksplisit [3]. Saya membangun jembatan darurat di atas jembatan yang sudah ada.

Mitigasi Bukan Sekadar Teori di Atas Kertas

Pelajaran dari dua menit itu jelas. Fallback yang belum diuji hanyalah teori, bukan mitigasi. Sebelum menduplikasi layanan di level orkestrasi, cek dulu apakah aplikasi sudah memiliki mekanisme degradasi bawaan. Driver GPU saya dikelola secara manual dan saya udah tahu bahwa saya nggak pernah mengalami insiden yang benar-benar membutuhkan container cadangan ini. Alasan utama saya hapus fallback cpu ollama dari konfigurasi bukan sekadar membersihkan kode, tapi menghilangkan ilusi keamanan. Jika sebuah prosedur cadangan membutuhkan runbook panjang untuk diaktifkan saat rumah sedang terbakar, itu hanya beban mati. Hapus saja, atau otomatisasi sepenuhnya.

Sumber

Artikel terkait