Hello!
I probably detected strong problems with x2go, not very easy to explain.
I am running a debian bullseye desktop, on it a kvm guest with debian
bullseye, both have kernel6. The kvm guest x2goserver: 4.1.0.3-5, the
host (my workstation) x2goclient: 4.1.2.2-2. Usually everything updated.
The problem is the performance of firefox, but not generally. It stucks
sometimes, up to several minutes and is completely unresponsive,
especially(!), if it comes to youtube videos, but most time, it is not
video.
Astoundigly, in the many cases, it recovers. I am run dstat permanently
(in the guest) and usually see a memory bottleneck (mem < 1 GB), not
too strong and additionally high cpu usage, load: 6/4/4, but not too long.
Often, this box crashes, if mem goes below 500 MB. Known, with firefox.
For unknown reasons, this situation is not stabil (I am using up to
500 Tabs), one will never know, when this may happen and pre-actively
saveing the session and continue with, say, 50 Tab, doesnt change the
problem!
The VM got 8 cores(!) on a AMD EPYC-Rome Processor with max 3.4 Ghz
and 24 GB(!) mem, it got two network interfaces, one, to communicate with
my host over a local bridge (10-36 Gb/s!), this is the "x2go-channel" and
a lan-IF (1 Gb/s, hardware-passthrough) to the gateway (has 500 Mb/s) and
nothing overloaded ever. Additionally some diskwrite, but with 600MB/s
(in the VM!) this should not indicate a bottleneck.
But since days, while another hickup, I saw, that the fox needs about
only 20% cpu, BUT 'x2goagent' neds 100% !! It looks like the hickup
appears exactly at those times. I setup a little processmonitor for the
x2goagent and this seems to show a memory leak. I append this at the
end. I installed 'glances' and that show me the x2goclient as the second
mem consumer, growing.
What language is the x2goagent written? Looks like a failing
heap-management, garbage collection, which needs a lot of cpu?
Some notes would be really welcome!
Thanks,
Manfred
--- x2go-"monitor" -----------------------------------
(to keep this short, it has been cutted in the middle)
$ while true; do ts="$(isodate -dt)"; xp="$(ps --no-headers -o user,pid,rss,%mem,comm -p 9430)"; echo "${ts} ${xp}"; sleep 3600; done
2023-04-05--22-21-29 ncu1 9430 1479916 6.0 x2goagent
2023-04-05--23-21-30 ncu1 9430 1491476 6.0 x2goagent
2023-04-06--00-21-30 ncu1 9430 1507612 6.1 x2goagent
2023-04-06--01-21-30 ncu1 9430 1514504 6.1 x2goagent
2023-04-06--02-21-30 ncu1 9430 1545784 6.2 x2goagent
2023-04-06--03-21-30 ncu1 9430 1560096 6.3 x2goagent
2023-04-06--04-21-30 ncu1 9430 1664844 6.7 x2goagent
2023-04-06--05-21-30 ncu1 9430 1684888 6.8 x2goagent
2023-04-06--14-06-28 ncu1 9430 1684888 6.8 x2goagent
.......
2023-04-10--16-06-31 ncu1 9430 2263236 9.1 x2goagent
2023-04-10--17-06-31 ncu1 9430 2274848 9.2 x2goagent
2023-04-10--18-06-31 ncu1 9430 2305704 9.3 x2goagent
2023-04-10--19-06-31 ncu1 9430 2352964 9.5 x2goagent
2023-04-10--20-06-32 ncu1 9430 2352964 9.5 x2goagent
2023-04-10--21-06-32 ncu1 9430 2406988 9.7 x2goagent
2023-04-10--22-06-32 ncu1 9430 2446112 9.9 x2goagent
======================================================