近期发现飞牛NAS通过Docker部署qBittorrent时出现IO性能瓶颈,比如明明上传只有100k,但是硬盘读取持续几十甚至上百m/s,导致固态寿命暴降,但是这还不是飞牛的锅,拿debian12的docker部署也存在这个问题,可能与容器虚拟化层及存储驱动有关。
首先介绍一下qbittorrent这个东西常用于下载bt,或者pt。飞牛上常用于往飞牛影视库里下电影。
另外,其实直接apt install qbittorrent 或者直接用应用商店的也可以,不过不是最新版,下面介绍一种部署新版的方式。
一、二进制部署的优势
1. 直接调用硬件资源
绕过Docker的虚拟化层,减少文件系统叠加导致的IO延迟,尤其适合高并发下载场景。
2. 问题易排查
原生进程便于通过iotop、htop等工具直接分析IO占用,排查效率更高。
二、部署步骤
1. 环境准备
o 系统要求
飞牛NAS需开启SSH访问,使用sudo -i 登录到root账号,然后执行如下命令:
bash
apt update
apt install -y wget
cd /root
wget -O qbittorrent-nox https://github.com/userdocs/qbittorrent-nox-static/releases/download/release-5.0.4_v2.0.11/x86_64-qbittorrent-nox
# 添加执行权限
chmod +x qbittorrent-nox
其中cd root可以换个你喜欢存的位置。
2. 服务配置与启动
o 创建Systemd服务
编辑
/etc/systemd/system/qbittorrent-nox.service:
[Unit]
Description=qBittorrent Daemon Service
After=network.target
[Service]
User=root
ExecStart=/root/qbittorrent-nox
ExecStop=/usr/bin/killall -w qbittorrent-nox
Restart=on-failure
[Install]
WantedBy=multi-user.target
然后我们先要设置密码,执行如下命令
./qbittorrent-nox
会看到一些提示,这时候按回车,就会看到随机生成的密码。此时,我们访问ip:8080通过图形界面修改用户名和密码。
o 启动与状态检查
sudo systemctl daemon-reload
sudo systemctl start qbittorrent-nox.service
sudo systemctl enable qbittorrent-nox.service
sudo systemctl status qbittorrent-nox.service 确认无报错
此时即可使用qbittorrent,经过一段时间的观察,这种方式部署的qbittorrent还没有出现io占用过高的问题。