LINUX.ORG.RU

Transmission too many open files

 ,


0

1

Привет, лорчане. У меня какой-то баг 9-летней давности вылез на трансмиссии - https://i.imgur.com/aSMWXp3.png. Я находил репорты аж в 2009 году. До сих пор он висит. Объяснения в интернетах два: или неправильные права на папку загрузки/временную папку (у меня 777), или ограничение на количество дескрипторов в системе

cat /proc/sys/fs/file-max 
18446744073709551615
Как это фиксить? Версия transmission-qt 2.94 (d8e60ee44f). Разницы в работе с gtk версией нет.

Эти файлы обычно сохраняются в ~/.config/transmission/resume/ . У тебя там всё в порядке? cat /proc/sys/fs/file-nr ?

boowai ★★★★
()

или неправильные права на папку загрузки/временную папку (у меня 777)

Не надо так делать. Инструкции с «chmod 777» пишут ярко выраженные ламеры

или ограничение на количество дескрипторов в системе

this. Смотри ulimit -n. Поднять можно в /etc/security/limits.conf . Но

  • в этом конфиге прописывается именно лимит на стороне ОСи. shell или init могут понизить лимиты в соответствии с конфигом. Тогда смотри профиль shell'а или юнит в systemd
  • нужно выполнить logout / login , либо sudo , т.к. у процессов лимиты наследуются от родительского процесса, в т.ч. логина, который получает их через pam
router ★★★★★
()
Ответ на: комментарий от router

Ну и не факт, что это баг. Может у тебя реально сотни торрентов активны, а не утечка дескрипторов.

router ★★★★★
()
Ответ на: комментарий от router

777 я сам поставил на время, чтобы быть уверенным, что проблема не в этом.

sysctl fs.file-max
fs.file-max = 18446744073709551615

Но в /etc/security/limits.conf все строки закомментированы, а в конфигах баша (bashrc, bash_profile в хомяки и общесистемные) нет лимитов.

Этот лимит soft (мягкий?), потому что ulimit -Sn показывает имеено это значение, а хардовый 524288.

Добавил в /etc/security/limits.conf строку

user soft nofile 10000
и ребутнулся, но ничего не изменилось, хотя по ulimit -Sn уже показывает 10000. Трансмиссия продолжает буксовать. Торрент всего 1.

Linux_Newbie
() автор топика
Ответ на: комментарий от anonymous

По ulimits -a

core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 63581
max locked memory       (kbytes, -l) 1024
max memory size         (kbytes, -m) unlimited
open files                      (-n) 10000
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) 63581
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
Какой мне нужено тогда выставить soft лимит на открытые файлы, чтобы и торрент клиент работал, и систему не убило?

Linux_Newbie
() автор топика
Ответ на: комментарий от Linux_Newbie

Тебе не обязательно менять лимит для всех процессов юзера. Ты можешь регулировать лимит для каждого процесса. Например,

grep files /proc/"$(pgrep transmission-qt)"/limits
Max open files            1024              524288                  files

prlimit --pid "$(pgrep transmission-qt)" --nofile=36000:

grep files /proc/"$(pgrep transmission-qt)"/limits
Max open files            36000              524288                  files

Yorween
()
Ответ на: комментарий от Linux_Newbie

Миллион ставь, если у тебя не натуральный калькулятор casio вместо компа.

anonymous
()
Ответ на: комментарий от Linux_Newbie

хотя по ulimit -Sn уже показывает 10000. Трансмиссия продолжает буксовать. Торрент всего 1.

В это количество входят не только собственно файловые дескрипторы, но и даже сокеты, т.е. соединения TCP/UDP. Можешь в настройках Transmission притушить максимальное число соединений.

Deleted
()
6 мая 2019 г.

В поисковик хоть вбивать это пробовал? Я уж не говорю про вики самого трансмишена.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.