Linux Install Ollama

Ollama上手容易,操作简单,适合新手入门,主要针对单显卡,多显卡并发效果可能不太好,如果涉及多显卡并发调用,则可以考虑其他的大模型部署工具,比如vLLM。
如果非想要在Ollama上实现多卡并发调用,可以采取每张单卡部署一个实列,然后通过Nginx负载均衡的方式访问,这样的缺点就是比较吃显存。

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

官网的脚本在安装的时候容易遇到网络问题

h3c@h3c:~/packages$ curl -fsSL https://ollama.com/install.sh | sh
>>> Cleaning up old version at /usr/local/lib/ollama
>>> Installing ollama to /usr/local
>>> Downloading Linux amd64 bundle
curl: (35) Recv failure: Connection reset by peer
https://ghproxy.cn/https://github.com/ollama/ollama/releases/latest/download/ollama-linux-amd64.tgz

使用安装包进行安装:

1、获取加速下载地址(强推)

将下载的Github链接复制到虾壳 – GitHub下载加速网站 GitHub Proxy加速器获取加速地址

https://github.com/ollama/ollama/releases/latest/download/ollama-linux-amd64.tgz
->
https://ghproxy.cn/https://github.com/ollama/ollama/releases/latest/download/ollama-linux-amd64.tgz

2、下载解压运行

wget https://ghproxy.cn/https://github.com/ollama/ollama/releases/latest/download/ollama-linux-amd64.tgz
tar -C /usr -xzf ollama-linux-amd64.tgz
ollama serve

3、修改模型默认存储位置(非必须)

默认安装后,模型会存放在~/.ollama/models下面,这里将模型存在位置放到/mnt/data/ollama_models下面,可能会存在目录的权限问题,如果当前用户没有要存放位置的权限

h3c@h3c:~$ ls ~/.ollama/
id_ed25519  id_ed25519.pub  models

vim ~/.profile
# 模型保持位置,必须要修改不然系统盘空间会严重不足
export OLLAMA_MODELS=/mnt/data/ollama_models
# 开放网络访问,让局域网其他人也能访问ollama服务
export OLLAMA_HOST="0.0.0.0"

# 使用0号1号2号3号显卡,具体根据自己的显卡情况来
CUDA_VISIBLE_DEVICES=0,1,2,3
# 允许的并发数量,这个要根据模型大小和显卡数量来决定,经过我实践,48GB的单显卡,13GB大小的模型,并发设置为5比较合适,整体占据显存30GB左右,利用率达到70%左右
export OLLAMA_NUM_PARALLEL=5
# 允许最大加载的不同模型的数量,比如要想同时加载deepseek-r1:7b和deepseek-r1:8b,要根据显存大小来,如果为1,则加载另外模型之前会把当前模型退出加载先
export OLLAMA_MAX_LOADED_MODELS=1
# 模型分散策略开关,1打开0关闭,比如100GB大小的模型,分散到4张卡,每张卡25GB,ollama其实主要针对的单显卡(多卡的并发并不太行,如果需要考虑多卡并发性能的话,就不能使用ollama,可以使用vLLM),多显卡的情况分散调度效果提升不了多少,甚至因为切换调度开销性能反而还会下降,具体要根据模型的大小结合CUDA_VISIBLE_DEVICES来决定
export OLLAMA_SCHED_SPREAD=0

source ~/.profile
ollama serve stop

将新目录的权限授予当前用户

sudo /bin/cp -rf ~/.ollama/models/* /mnt/data/ollama_models
sudo chown -R h3c:h3c /mnt/data/ollama_models
chmod -R 777 /mnt/data/ollama_models
ollama serve

4、下载模型,这里下载deepseek-r1:70b

h3c@h3c:~$ ollama run deepseek-r1:70b
pulling manifest
pulling 4cd576d9aa16:   0% ▕                                                          ▏  47 MB/ 42 GB  8.1 MB/s   1h27m

5、添加环境变量

h3c@h3c:~$ curl http://127.0.0.1:11434
Ollama is running

h3c@h3c:~$ curl http://localhost:11434
Ollama is runningh3c@h3c:~$

h3c@h3c:~$ curl 10.80.80.10:11434
curl: (7) Failed to connect to 10.80.80.10 port 11434 after 0 ms: Couldn't connect to server

运行ollama后发现,http://127.0.0.1:11434和http://localhost:11434都可以访问,但是通过ifconfig得到的ip无法访问

vim ~/.profile
export OLLAMA_HOST="0.0.0.0:11434"

source ~/.profile

6、Ollama单卡单实例(非必须)

这里假设我们有4块卡0(11433)、1(11434)、2(11435)、3(11436),下面处理0(11433)卡,123卡也做同样的操作。

sudo vim /etc/systemd/system/ollama-gpu0.service
[Unit]
# 0卡的描述文字,这里123要做对应的修改
Description=Ollama Service - GPU 0
After=network-online.target

[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3

# 0卡绑定的端口,这里123要做对应的修改
Environment="OLLAMA_HOST=0.0.0.0:11433"
# 0卡,,这里123要做对应的修改
Environment="CUDA_VISIBLE_DEVICES=0"
# 并发数,这个要根据实际要加载的模型和显卡的大小决定,可用根据测试结果来
Environment="OLLAMA_NUM_PARALLEL=5"
Environment="OLLAMA_MAX_LOADED_MODELS=1"
Environment="OLLAMA_KEEP_ALIVE=-1"
Environment="OLLAMA_MODELS=/mnt/data/ollama_models"

Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

[Install]
WantedBy=default.target

7、Nginx负载均衡(非必须)

sudo vim  /etc/nginx/conf.d/ollama.conf

upstream ollama_backend {
    # 如果每次模型做的任务都是一样的,这里最好使用默认的轮询。经过充分测试,如果使用least_conn;max_conns=5;最小连接的话,用户对话结束但是连接没有立即释放的话,会影响性能。
    server 127.0.0.1:11433;
    server 127.0.0.1:11434;
    server 127.0.0.1:11435;
    server 127.0.0.1:11436;
}

server {
    listen       9999;
    server_name  ai.runs.wang;

    location  / {
        proxy_pass http://ollama_backend;
        proxy_set_header Host $proxy_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_connect_timeout 300s;
        proxy_send_timeout 300s;
        proxy_read_timeout 300s;
    }
}

Reference
《Ollama模型下载路径替换!靠谱!(Linux版本)》
《Ollama 下载模型的默认存储位置修改》
《Ollama中国国内Linux服务器安装超时、失败问题解决 | 2025年3月最新方案亲测可用》