Open Aleksman4o opened 2 years ago
Can you test it with libtorrent-1.2?
Can you test it with libtorrent-1.2? Little bit later. I'm also noticed increase opened sockets while freeze happens
What router do you have? I can describe a similar problem, but mine is most likely related to the router. My TP-Link Archer AX55 router and I have such drops every minute when the gigabit channel is fully loaded from two PCs, if you use gigabit from only one PC, then there is no such thing.
I have two routers now for 2 gigabits connection - Archer C5 and Keenetic Speedster. There's no difference which one i'm using. And it is qbittorrent fully loaded 1 thread cpu while freezing
Can you test it with libtorrent-1.2?
recompiled qbittorrent with libtorrent-rasterbar-1-1.2.17. This problem still exists too. Although problem with moving files to another disk after downloading has gone :)
I found network_threads setting in libtorrent, default is 1, may be this is a bottleneck. How can i increase this setting to test perfomance?
I'm sure network_threads
was deprecated?!
Perhaps looking in to recv_socket_buffer_size
& send_socket_buffer_size
may be better options?!
Not sure this can help, but i can try. How can i tune this options?
Well, may be it's a story of my success.
I've decided to perform some inspection with Perf tool and inspected Qbittorrent process, that eats 100% of 1 cpu while freeze happens and seen that read_hpet
is a main character of this process - about 17% of all calls, if i'm understood it right. There are zillion of calls clock_gettime()
while freeze.
So i googled hpet and found that it's precision timer one of a three - tsc, hpet and acpi_pm.
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
shows that my system supports only last two of them.
Hpet is about 20 times slower than tsc and that's why calls to it eats my processor.
So, i'm just add clocksource=tsc tsc=reliable
to linux kernel parameters and reboot the machine.
After that cat /sys/devices/system/clocksource/clocksource*/current_clocksource
shows tsc
and it's look like my problem is solved. Now i can say that qbittorrent perfomance is just amazing.
It seems tsc=reliable cause some issues with zfs, so it's not solve the probem :(
@arvidn If & when you have time, can you look into this please.
I imagine the underlying issue is that libtorrent end up in a state where a timer expires and is reissued at the current time, and so it fires again, pegging the CPU. @Aleksman4o would you be willing to share the perf
profile you collected? maybe just a screenshot of the top call stacks.
There was an issue with HTTP tracker timeouts that was fixed recently that could have this symptom. Could this be it?
I believe it was released in 1.2.17 and 2.0.7. https://github.com/arvidn/libtorrent/pull/6951
one issue I recently discovered was that, when I have a VPN enabled, linux broadcasts frequent redundant updates over NETLINK_ROUTE
sockets. Libtorrent currently subscribes to such updates to be notified of changes to the local network setup (new interfaces coming online or disappearing).
When this notification happens often, all the work libtorrent does to re-open listen sockets can add up and be expensive (as well as announcing to trackers). This is being addressed in https://github.com/arvidn/libtorrent/pull/7058
Fresh news: now i have about 70k torrents and qbittorrent's freezes now more massive )
@Aleksman4o How does qBittorrent v5.0.0 behave for you?
It seems there was some improvements. But i understand that i'm not typical qbittorrent user, so i've divided qbittorrent on 2 instances to solve this problem.
qBittorrent & operating system versions
qBittorrent-nox: 4.5.0 from master Operating system: Manjaro, kernel 5.18 libtorrent-rasterbar: 2.0.7
What is the problem?
While uploading ~30-40k torrents faster than ~500mbit, qbitttorrent freezes every 30 sec and start using 1 cpu thread at 100% for 2-3 sec, while other threads not used. While this happens, disks busy at 5%, network busy 5%, used memory not changes. I've been seeing this behavior for a long time, but my internet was not so fast, so that was not noticeable. I've tried various settings - had no affect, usually i have 40k active torrents, 100 upload slot and 4GB cache.
Steps to reproduce
Additional context
Log(s) & preferences file(s)
qBittorrent.conf.txt