domingo, 17 de mayo de 2026

Proxmox: Instalación de Ollama y primeras pruebas.

Ollama es una herramienta que permite descargar, ejecutar y gestionar modelos de lenguaje (LLM) de forma local en tu propio ordenador o servidor, sin depender de servicios externos en la nube. En lugar de enviar tus datos a plataformas de terceros, Ollama ejecuta modelos de inteligencia artificial directamente en tu equipo, ofreciendo una mayor privacidad, control y, en muchos casos, un menor coste a largo plazo. Además, simplifica enormemente el proceso de instalación y uso de modelos abiertos como Llama, Gemma, Mistral, Qwen o DeepSeek, permitiendo ponerlos en marcha con apenas unos comandos.

Una de sus grandes ventajas es su sencillez: Ollama actúa como un “motor” que descarga automáticamente los modelos, los optimiza para el hardware disponible y los ejecuta mediante una interfaz muy simple desde terminal o a través de una API local. Esto lo convierte en una opción ideal tanto para usuarios que quieren experimentar con IA en un entorno doméstico como para quienes desean integrar capacidades de inteligencia artificial en aplicaciones, servidores o laboratorios personales (homelab), manteniendo siempre el control sobre los datos y el entorno de ejecución.


En este artículo veremos cómo instalar Ollama en una máquina virtual con Ubuntu Server, desplegada sobre Proxmox, para disponer de un entorno preparado para ejecutar modelos de inteligencia artificial localmente de forma sencilla, eficiente y bajo nuestro propio control.

Instalación de Ubuntu Server

Esta parte ya se explicó en este artículo  por lo que en esta ocasión nos centraremos en realizar una configuración más avanzada y ajustada de Ollama, optimizando el entorno para obtener un mejor rendimiento y estabilidad en Ubuntu Server.

Configuración de la VM

En mi caso, voy a configurar el servidor con 7 GiB de RAM, 64 GiB de almacenamiento, 1 socket y 3 cores, ya que el hardware disponible es bastante modesto. Aun así, para realizar pruebas, ejecutar modelos ligeros y familiarizarnos con el entorno, esta configuración debería ser más que suficiente.

Si quieres comprobar cuántos cores y sockets tienes disponibles en tu servidor Proxmox, puedes consultarlo fácilmente ejecutando el siguiente comando desde la consola:

  • lscpu

Nos devolverá algo parecido a esto (en mi caso):

Architecture: x86_64
CPU(s): 4
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
Model name: Intel(R) Core(TM) i5-4210U @ 1.70 GHz

Teniendo en cuenta que:

  • Socket(s) → procesadores físicos, normalmente 1
  • Core(s) per socket → núcleos reales
  • CPU(s) → total de hilos lógicos visibles por Proxmox

El resultado muestra que dispongo de 2 núcleos físicos reales, 4 hilos lógicos (Hyper-Threading) y 1 socket físico. Precisamente por esta limitación de hardware, para una única máquina virtual con Ubuntu Server + Ollama he optado por asignar 1 socket y 3 cores, dejando recursos suficientes para que el sistema anfitrión y otros servicios de Proxmox puedan seguir funcionando con cierta holgura.

swap

La swap es una porción del disco duro o SSD que Linux utiliza como memoria virtual cuando la RAM física empieza a agotarse. Para saber si tenemos activo ejecuta:

  • swapon --show

Si tiene swap activo, verás algo parecido a:

NAME      TYPE SIZE USED PRIO
/swap.img file   4G   0B   -2

Si no devuelve nada, no hay swap activa. Puedes comprobarlo ahora mismo si el sistema está "tirando" de swap ejecutando:

  • free -h && swapon --show

También puedes verlo en tiempo real ejecutando Puedes verlo en tiempo real:

  • htop


Si no lo tienes instalado:

  • sudo apt install htop

En la parte superior verás las barras de Mem (memoria RAM) y Swp (memoria de intercambio o swap). Si observas que Swp comienza a aumentar mientras ejecutas Ollama, es una señal clara de que la RAM disponible se ha quedado corta y el sistema está empezando a utilizar el disco como memoria auxiliar, algo que puede afectar notablemente al rendimiento del modelo.

El parámetro de agresividad del swap (swappiness) le dice a Linux cuándo empezar a usar la swap en lugar de seguir usando la RAM. Para ver este parámetro ejecutar:

  • cat /proc/sys/vm/swappiness

60 es valor típico de Ubuntu y es el que me ha devuelto el comando. Entre 10 y 20 es más recomendable para servidor/VM (usa swap solo cuando hace falta). Para cambiarlo temporalmente:

  • sudo sysctl vm.swappiness=10

Para que el cambio sea persistente hay que editar el fichero sysctl.conf:

  • sudo nano /etc/sysctl.conf

y añadir  

vm.swappiness=10

Por último aplicamos sin reiniciar:

  • sudo sysctl -p

y deberías ver algo parecido a esto:

vm.swappiness = 10

Instalación de LLMFit

LLMFit es una herramienta que analiza el hardware de tu ordenador o servidor (CPU, RAM, GPU y almacenamiento) para recomendar qué modelos de lenguaje (LLM) puedes ejecutar localmente con herramientas como Ollama o LM Studio, estimando si un modelo “cabe” en memoria, el rendimiento esperado y si funcionará de forma fluida o limitada según los recursos disponibles del sistema.

Para instalarlo nos vamos a su página en github y copiamos el comando de instalación que pegaremos en la consola:

  • curl -fsSL https://llmfit.axjns.dev/install.sh | sh

Para ejecutarlo simplemente escribimos:

llmfit


y para salir la tecla ESC.

Instalación de ollama

Nos vamos a su web ollama.com y copiamos el comando de instalación:

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


Con el hardware del que dispongo, voy a instalar Gemma 3:4B, aunque soy consciente de que las respuestas pueden ser algo lentas. Hay que tener en cuenta que este entorno está pensado principalmente para pruebas y aprendizaje, por lo que, más adelante, probablemente experimente con otros modelos más ligeros y mejor adaptados a equipos con recursos limitados.

Si buscamos este modelo en LLMFit (/gemma3), veremos que aparecen numerosos parámetros y métricas. Sin embargo, para decidir si un modelo es adecuado para nuestro equipo, los valores más importantes a tener en cuenta son las columnas Fit y Mem %, ya que nos indican, respectivamente, si el modelo puede ejecutarse correctamente en nuestro hardware y el porcentaje estimado de memoria que consumirá.


  • Marginal: cabe, pero justo.
  • Mem % 93–98%: demasiado justo.
  • CPU: irá por procesador, sin GPU.
  • tok/s: velocidad estimada de respuesta.

Si buscamos gemma3:4b en la biblioteca de Ollama, veremos que aparecen numerosos modelos creados por la comunidad (community models), normalmente versiones modificadas, optimizadas o adaptadas por otros usuarios. Sin embargo, en este caso vamos a utilizar el modelo oficial, mantenido directamente por el equipo de Ollama, para asegurarnos de trabajar con una versión estable y sin modificaciones. El modelo oficial de Gemma 3:4B se encuentra en: https://ollama.com/library/gemma3:4b

Para instalarlo en Ollama, simplemente copia y pega el siguiente comando en la consola de Ubuntu Server. Ollama se encargará automáticamente de descargar el modelo y dejarlo listo para usar:

  • ollama run gemma3:4b


Una vez finalizada la instalación del modelo, ya podemos empezar a chatear con él directamente desde la consola. En mi caso, el rendimiento no es especialmente rápido debido al hardware limitado, pero funciona de forma estable y permite hacer pruebas sin problemas. Al fin y al cabo, para un entorno de laboratorio o aprendizaje, lo importante es que el sistema responda correctamente, aunque se tome unos segundos más en generar cada respuesta.

Si escribimos /? dentro del chat de Ollama, veremos una lista con los comandos disponibles. Entre ellos destaca /bye, que permite salir de la conversación y volver a la terminal del sistema.

Ante una pregunta aparentemente sencilla, el consumo de CPU se dispara, llegando a utilizar prácticamente todos los recursos disponibles del sistema.


Esto confirma que este modelo resulta demasiado exigente para el hardware del que dispongo, al menos con la configuración actual de la máquina virtual. Aunque puede ejecutarse, el rendimiento no es el más adecuado, por lo que probablemente sea más recomendable optar por un modelo más ligero o ajustar mejor los recursos asignados.

Algunos comandos útiles de Ollama

  • ollama list → muestra el listado de modelos instalados y disponibles en el sistema.
  • ollama ps → permite ver qué modelo está actualmente cargado en memoria y en ejecución.
  • ollama stop gemma3:4b → detiene un modelo concreto que esté cargado (en este ejemplo, Gemma 3:4B), liberando recursos del sistema.
  • ollama rm gemma3:4b → elimina un modelo instalado del sistema, borrando sus archivos y liberando espacio en disco.

Estos comandos básicos son suficientes para gestionar el ciclo habitual de trabajo: instalar, ejecutar, comprobar, detener o eliminar modelos según las necesidades del momento.

Resumen

Con esto ya tenemos un primer entorno funcional de Ollama ejecutándose sobre Ubuntu Server en una máquina virtual de Proxmox, algo especialmente interesante si quieres iniciarte en el mundo de los modelos de lenguaje locales (LLM) sin depender de servicios externos. A lo largo del artículo hemos visto cómo preparar una VM modesta, comprobar los recursos disponibles del hardware, instalar Ollama y desplegar un modelo como Gemma 3:4B, además de aprender algunos comandos básicos para gestionar los modelos desde consola.

Este es solo el punto de partida. En próximos artículos seguiremos profundizando en el ecosistema de Ollama, explorando aspectos como la elección del modelo más adecuado según el hardware disponible, optimizaciones de rendimiento, gestión avanzada de memoria, despliegue de APIs locales, integración con herramientas externas y casos de uso prácticos dentro de un homelab o entorno doméstico de inteligencia artificial.


No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.