最近组了个黑群玩,在使用transmission下载时遇到too many open file问题

群晖系统连接数过大导致此错误,跟磁盘性能关系不大,此错误出现在当你保种和下载的连接数超过系统限制时触发。

比如:

  • 我保种了2000个种子,每个种子都是一个单文件,基本不会出现这个错误,
  • 我保种了50个种子,每个种子都是5T的大包,每个包里面都是几千个小文件,很大概率触发
  • 我正在下载几个大包,很可能触发

所以为什么说,有的人说固态没事,有的人说原版没事,问题的关键不是这些因素,而是上面的,做种下载上传本质为硬盘的随机读写,理论上加缓存会有些许改善,但不是此错误的解决方案,除非你加一个和存储池一样大小的缓存。

网上已有解决方案了

群晖transmission-too-many-open-files-解决方案这个是原版

如果原版打不开,有人转载(博主说的是相关阅读,手动狗头)黑群晖软件transmission下载提示:Unable to save resume file: Too many open files (3) 解决方案

此文只为记录,防止上面的文章失效,以后找不到了。

  1. SSH登入群晖
  2. 下载文件,链接: https://pan.baidu.com/s/1UcZySBbRmbn0ZEZq-L18yA?pwd=nqc5
  3. 更改rlimit程序的权限,chmod 777 rlimit
  4. 查找transmission的进程编号,ps -ef|grep trans,可以看到前面的数字即为进程编号;
  5. 使用rlimit工具对进程进行更改:./rlimit 进程编号
  6. 查看是否生效,cat /proc/您的进程编号/limits 文件,可以看到file相关的都变成了60000,至此大功告成

如果没生效,第五步时提权sudo ./rlimit 进程号,再次检查是否生效

注意的点:

  • 记得把transmission的连接数修改为较大值,比如60000
  • 在每次重启transmission进程时(比如关机),如果进程改变,需要再次修改
  • 群晖系统把连接数设置为1024的阈值是有自己的考量的,且对硬盘的伤害较大,如果你的硬盘和数据比较重要,请小心谨慎
最后修改:2022 年 01 月 17 日
如果觉得我的文章对你有用,请随意赞赏