系统配置
| 处理器 | 内存 | 存储 | 系统 | 模型 | 生成速度 | |
|---|---|---|---|---|---|---|
| 类型 | E5-2965v4 | DDR4 | M.2 | Linux | qwen3.5-4b | 纯文字 |
| 规格 | 60核 | 48G | 200G | Ubuntu24.04 | q4量化 | 11token/s |
11t/s算是这个配置相当不错的速度了,如果想要提升速度则需CPU更换为新架构的、内存条升级到DDR5,那么必然需要更换主板,还不如直接加显卡来的实在。
- 安装编译工具链
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装基础编译工具
sudo apt install -y build-essential cmake git wget curl python3-pip
# 验证版本
gcc --version # 需要 >= 12
cmake --version # 需要 >= 3.21
- 克隆并编译 llama.cpp
设置临时网络代理
```bash export http_proxy="http://IP:port" export https_proxy="http://IP:port" ```# 克隆仓库
cd ~
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
# 创建构建目录
mkdir build && cd build
# 纯 CPU 编译
cmake .. -DLLAMA_BUILD_UI=OFF
make -j$(nproc)
- 下载模型文件
# 删除原models目录下所有文件
rm -rf ~/llama.cpp/models/*
# 安装modelscope
pip install modelscope
# 使用 modelscope 下载
modelscope download --model diodel/Qwen3.5-4B-Q4_K_M-GGUF --local_dir ~/llama.cpp/models
安装modelscope失败
```bash mkdir -p ~/.config/pip echo -e "[global]\nbreak-system-packages=true" > ~/.config/pip/pip.conf ```- 测试启动,配置核心参数
# 启动服务
~/llama.cpp/build/bin/llama-server \
--models-dir ~/llama.cpp/models \
--chat-template-kwargs '{"enable_thinking":false}' \ # 关闭思考过程
--models-max 3 \
--host 0.0.0.0 \
--port 8080 \
-c 8192
--threads 22 \ # 线程数不是越多越好,自行测试
--threads-batch 16 \ # prompt 编码阶段的并行线程数,可以不要
--batch-size 512 \ # 一次处理的token数量,加速长prompt的首token响应,可以不要
--ubatch-size 512 \ # 内部矩阵运算的分块大小,配合batch-size使用,可以不要
--numa distribute \ # 双路CPU必加。将计算均匀分配到两个CPU节点,避免跨节点内存访问瓶颈,虚拟机注意CPU配置选host,开启numa
--mlock # 将模型锁定在物理内存中,防止被系统换出到 swap
# 网页访问webui地址
http://IP:8080
配置防火墙放行8080端口
```bash sudo ufw enable #启动防火墙 sudo ufw allow 8080/tcp 放行8080端口 sudo ufw reload ```- 配置 systemd 开机自启服务
# 创建服务文件
sudo vi /etc/systemd/system/llama-server.service
# 写入以下内容
[Unit]
Description=llama.cpp server - multi model router
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=/root/llama.cpp/build
Environment="PATH=/usr/local/bin:/usr/bin:/bin"
ExecStart=/root/llama.cpp/build/bin/llama-server --models-dir /root/llama.cpp/models --models-max 3 --host 0.0.0.0 --port 8080 -c 8192 --chat-template-kwargs '{"enable_thinking":false}' --threads 22 --numa distribute --mlock
Restart=always
RestartSec=5
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
# 加载并启用服务
sudo systemctl daemon-reload
sudo systemctl enable llama-server # 设置开机自启
sudo systemctl start llama-server # 立即启动
sudo systemctl status llama-server # 查看状态
- 日常运维常用命令
# 查看服务状态
sudo systemctl status llama-server
# 重启服务
sudo systemctl restart llama-server
# 停止服务
sudo systemctl stop llama-server
# 查看实时日志
sudo journalctl -u llama-server -f
# 查看最近50行日志
sudo journalctl -u llama-server -n 50 --no-pager
# 取消开机自启
sudo systemctl disable llama-server
