最近,群晖的套件版Transmission下载文件时报错:Too many open files (24),探查原因之后,发现是系统ulimit的问题,群晖的默认值是1024,我这边尝试了各种方法修改,包括但不限于:
- 修改
/etc/profile - 修改
/root/.profile - 修改
/var/packages/transmission/scripts/start-stop-status文件,这是TR的启动、停止代码,仍然不行,因为sc-transmission用户没有执行权限 - 修改
/volume1/@appdata/transmission/settings.json文件,增加"open-file-limit": 65535,仍然无效 - 修改
sudo systemctl edit pkgctl-transmission.service,还是不行 - ……
以上很多操作都试过了,基本上不太可行,可以通过这个命令来查看是否修改成功:
cat /proc/$(pidof transmission-daemon)/limits | grep "Max open files"
这是查看Transmission可用的线程数,一般会显示:
Max open files 1024 4096 files
我们的目标是把这两个值改大点,目前我尝试过的唯一可行的方法就是直接修改Transmission进程,方法如下:
安装prlimit:
|
1 2 3 4 |
synopkg start transmission wget -O – http://bin.entware.net/x64-k3.2/installer/generic.sh | sh /opt/bin/opkg update /opt/bin/opkg install prlimit |
修改Transmission进程:
|
1 2 3 |
for p in $(ps -eo pid,user | awk '$2=="sc-transmission" {print $1}'); do /opt/bin/prlimit --pid "$p" --nofile=65535:65535 done |
之后再查看,就会发现成功改好了:

之后每次启动Transmission之后,都要手动修改下修改Transmission进程,倒也不是啥大问题,当然,你也可以设置个脚本,监测Transmission进程~
马春杰杰