Bittorrent клиент съедает всю память

Браузеры, почтовые клиенты, офисные пакеты, файловые менеджеры, редакторы и т.п.
Ответить
ar23n
Сообщения: 7
Зарегистрирован: 08.12.2025

#

Подскажите, как можно решить проблему жора памяти на примере qBittorrent? Аналогичное поведение наблюдал с приложением transmission-qt

Как следствие этого аппетита на память - отпадает возможность запускать параллельно еще что-то ёмкое, например, игру - спустя непродолжительное время она вылетает из-за нехватки свободной памяти. Возможно, это проблема самих игр, ведь они запускаются через "посредника" (steam proton) и не ведают что творится с памятью на Linux системе.

Может быть я зря напускаю панику и проблема нехватки памяти касается только игр, а другие (нативные) приложения своевременно обеспечиваются памятью, даже если она забита кэшем чтения/записи?

Попробовал рецепты касательно qbittorrent, которые нашел на просторах сети, но ни один из них не помог:
  1. Менял настройки: Disk IO type (Default, POSIX-compliant, simple pread/pwrite), а также Disk IO read mode (enable/disable OS cache).
  2. Понижал приоритет
    renice 10 -p $(pgrep qbittorrent)
Ниже привел данные для наглядности.
Cкрытый текст
До добавления торрента размером 20 GiB - данные скачаны, далее будет проверка.
> free -h
               total        used        free      shared  buff/cache   available
Mem:            31Gi       3,7Gi        23Gi       453Mi       5,2Gi        27Gi
Swap:          4,0Gi          0B       4,0Gi
После проверки данных торрента.
> free -h
               total        used        free      shared  buff/cache   available
Mem:            31Gi       3,7Gi       3,3Gi       462Mi        25Gi        27Gi
Swap:          4,0Gi          0B       4,0Gi
Спустя еще 20 минут работы qbittorrent по сидированию 25 раздач:
> free -h
               total        used        free      shared  buff/cache   available
Mem:            31Gi       4,1Gi       872Mi       626Mi        27Gi        27Gi
Swap:          4,0Gi       4,2Mi       4,0Gi
После сброса кэша
> sudo sh -c 'echo 3 >/proc/sys/vm/drop_caches'
> free -h
               total        used        free      shared  buff/cache   available
Mem:            31Gi       3,7Gi        27Gi       551Mi       1,4Gi        27Gi
Swap:          4,0Gi       4,4Mi       4,0Gi
ALiEN
Аватара пользователя
Сообщения: 452
Зарегистрирован: 23.08.2022

#

🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

ar23n
Сообщения: 7
Зарегистрирован: 08.12.2025

#

What if I want to run more applications?
If your applications want more memory, the kernel will just take back a chunk that the disk cache borrowed. Disk cache can always be given back to applications immediately! You are not low on ram!
---
А что, если я захочу запустить больше приложений?
Если вашим приложениям потребуется больше памяти, ядро ​​просто заберет обратно фрагмент, который был заимствован дисковым кэшем. Дисковый кэш всегда можно немедленно вернуть приложениям! У вас нет недостатка в оперативной памяти!
Если все так прекрасно, тогда почему приложение уходит в "нокаут" по причине нехватки памяти, которую съедает кэш чтения/записи?

Пускай система использует всю память по своему усмотрению - не жалко, но получается что другие (ёмкие) приложения будут вылетать, в то время как "если вашим приложениям потребуется больше памяти, ядро ​​просто заберет обратно фрагмент, который был заимствован дисковым кэшем" 🤷🏻‍♂️
ALiEN
Аватара пользователя
Сообщения: 452
Зарегистрирован: 23.08.2022

#

ar23n:приложение уходит в "нокаут" по причине нехватки памяти
Полный текст ошибки покажите

🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

BendalfRU
Сообщения: 238
Зарегистрирован: 07.07.2025

#

+ покажите параметры подкачки
+zram , zswap
+ параметры системы по теме управления озу.
ALiEN
Аватара пользователя
Сообщения: 452
Зарегистрирован: 23.08.2022

#

BendalfRU:покажите параметры подкачки
И чего это даст?
Со своей системой сначала разберитесь, прежде чем советы раздавать.

🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

ar23n
Сообщения: 7
Зарегистрирован: 08.12.2025

#

Зря я развел панику, в действительности все работает как описано на Linux ate my RAM! (спасибо ALiEN)
В общих чертах стало понятней как система работает с памятью.

ALiEN: Полный текст ошибки покажите
К сожалению, у меня не получилось еще раз воспроизвести сценарий аналогичный тому что был с вылетом из-за нехватки памяти. На тот момент я не догадался сразу посмотреть логи, а journald настроен сохранять логи только в памяти (Storage=volatile). Склоняюсь к тому, что это были проблемы самой игры, а не системы, о чем я изначально подумал.

✅ Сейчас всё работает как часики, даже когда параллельно с работой qBittorrent запускаются тяжелые приложения или игры.
✅ Установил в настройках qBittorrent - Advanced параметр Disk IO type = Simple pread/pwrite. Остальное в Advanced оставил по-умолчанию.

Немного понаблюдал в течении 8-10 часов за потреблением памяти и подкачки (swap), когда был активен qBittorrent и запускались различные приложения и игры. Приоритет процесса qBittorrent не менялся в обоих случаях (ниже).

1. В настройках Advanced всё по-умолчанию, в том числе Disk IO type = Default, Disk IO read/write mode = Enable OS cache.
В мониторинге top в колонке RES использование памяти у qBittorrent может доходить до нескольких ГБ и если вся свободная память занята кэшем (buff/cache), то начинает использоваться подкачка, вплоть до нескольких ГБ.

2. В настройках Advanced выставляю Disk IO type = Simple pread/pwrite.
qBittorrent использует не более 300-350 МБ памяти. buff/cache как и прежде заполняет всю свободную память, но при запуске тяжелых приложений или игр подкачка используется меньше (10-300 МБ).

Также интересно как повляет понижение приоритета процесса qBittorrent, например через renice 10, на интенсивность использования подкачки когда кэш (buff/cache) займет всю свободную память. Хотелось бы (не критично), чтобы подкачка использовалась по минимуму и в первую очередь память освобождалась от кэша (buff/cache), который в большей степени раздувается благодаря qBittorrent.

BendalfRU: + покажите параметры подкачки
+zram , zswap
+ параметры системы по теме управления озу.
1. У меня все по-умолчанию:
> cat /etc/fstab
<file system> <dir> <type> <options> <dump> <pass>
UUID=... none swap defaults 0 0
2. Стоял дефолтный tmpfs после установки Arch Linux. Я лишь позже добавил опцию noswap
rw,nosuid,nodev,inode64,noswap
3. Не совсем понимаю о чем речь. Но не рискнул бы трогать такие тонкие настройки - нет нужды и мало опыта.
Ответить