设为首页收藏本站

ZMX - IT技术交流论坛 - 无限Perfect,追求梦想 - itzmx.com

 找回密码
 注册论坛

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

搜索
查看: 3614|回复: 0

linux transmission 2.94报错"unable to save resume file: too many open files 打开文件数量上限限制1024

[复制链接]
 成长值: 342

签到天数: 4739 天

[LV.Master]伴坛终老

发表于 2019/5/3 06:33 | 显示全部楼层 |阅读模式 |Google Chrome 74.0.3729.131|Windows 10
天涯海角搜一下: 百度 谷歌 360 搜狗 有道 雅虎 必应 即刻
linux transmission 2.94报错"unable to save resume file: too many open files"的解决方法,打开文件数量限制

2.31 (and older),已经失效,transmission 新版本不加载此配置文件
open-file-limit: Number (default = 32)

首先不要说系统配置问题,贴出来给你们看,也使用su transmission确认过
[root@localhost ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 386495
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1048576
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 386495
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

cat /etc/security/limits.conf
* soft nofile 1048576
* hard nofile 1048576

查看pid具体限制确实存在
cat /proc/28492/limits | grep files

使用prlimit尝试设置,发现1024的问题存在,原因是源代码使用了过时的select,应当升级为iocp网络模型
prlimit --pid 28492 --nofile=65535

官方配置信息,,默认值23,不过新版本已经废弃了视乎,在系统中修改也无效果,并且系统内核日志没有任何报错,属于transmission自身一个BUG,在挂多个m2ts多文件的pt站中,因为非一个iso,多个peer区块化,一个peer会很容易打开多个文件,很容易复现问题。

查看fdlimit.c文件代码中,写死了1024限制,,看看有什么办法修改它。
tail -f /var/log/messages
May  2 20:22:24 localhost transmission-daemon[15483]: Changed open file limit from 65535 to 1024 (fdlimit.c:380)

解决方法,无。

缓解方法,限制最大全局连接数为500即可。

参考:https://trac.transmissionbt.com/ticket/5161#comment:3

https://github.com/transmission/transmission/issues/871

最好的解决办法是修改程序源代码 然后重新安装
Changed open file limit from 65535 to 1024 (fdlimit.c:380) 看他们回帖源代码里面关键的一段应该是这个
限制,同时连接数会导致连接的用户量变少 而且一个peer可能打开的文件不止一个 因为会请求多个区块 不同的区块会分散到不同的文件中
改源代码理论就可以彻底解决 ,也不知道软件官方为什么没有改这个代码 可能改了会引起其他的什么问题?
自己看服务器却是输出
Couldn't create socket: Too many open files (fdlimit.c:524)
Unable to save resume file: Too many open files (torrent.c:537)
Couldn't save temporary file "/home/transmission/.config/transmission/stats.json.tmp.G9FIc4": Too many open files (variant.c:1280)
源代码中理论上来说对应的文件是CMakeLists.txt 第124行
set(CMAKE_${L}_FLAGS "${CMAKE_${L}_FLAGS} -DFD_SETSIZE=1024")
据说3.1版本会解决,编译需要libcurl 7.28
https://github.com/transmission/transmission/commit/2da97b25fa43948fb24014535e880efed1a2fbdf
https://github.com/transmission/transmission/pull/893#issuecomment-720727051

欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册论坛 新浪微博账号登陆用百度帐号登录

本版积分规则

手机版|Archiver|Mail me|网站地图|IT技术交流论坛 ( 闽ICP备13013206号-7 )

GMT+8, 2024/12/25 09:11 , Processed in 0.097560 second(s), 21 queries , MemCache On.

Powered by itzmx! X3.4

© 2011- sakura

快速回复 返回顶部 返回列表