[Spice-devel] Work via slow networks
Frediano Ziglio
fziglio at redhat.com
Wed Jun 24 10:44:26 UTC 2020
> Frediano Ziglio писал 2020-06-23 18:01:
> > > Frediano Ziglio писал 2020-05-25 10:19:
> >
>
> > > > > I have a problem with slow rendering of a changing desktop via a slow
> > > >
> > >
> >
>
> > > > > network. SPICE tries to render all the states of the screen
> > > >
> > >
> >
>
> > > > > sequentially, instead of immediately drawing the final state.
> > > >
> > >
> >
>
> > > > > What settings can you remove this behavior?
> > > >
> > >
> >
>
> > > > Hi,
> > >
> >
>
> > > > I'm not sure, unfortunately, there's a way to entirely remove this
> > >
> >
>
> > > > behavior,
> > >
> >
>
> > > > at least with current optimizations.
> > >
> >
>
> > > > Can you describe better your case?
> > >
> >
>
> > > > What's slow mean, I mean, speed? 10Mbit? Less? More?
> > >
> >
>
> > > > Do you know the latency of the connection?
> > >
> >
>
> > > > What type (mobile/wifi/cabled/lan/wan) ?
> > >
> >
>
> > > > Which kind of guest (OS/configuration/use case) are you using?
> > >
> >
>
> > > > In the subject you state a "slow network" in the message you speak
> > >
> >
>
> > > > about "slow rendering", that's quite different from the way I see it,
> > >
> >
>
> > > > what specific issues are you noting?
> > >
> >
>
> > > > Frediano
> > >
> >
>
> > > The channel is UDP OpenVPN via the Internet. The total load from
> >
>
> > > everything turns out to be about 100Kib. But this is not a direct
> >
>
> > > channel limitation. The channel may be larger. If you use the TCP
> >
>
> > > version of OpenVPN, then it will be displayed even more slowly. It seems
> >
>
> > > that the server is waiting for some confirmation from the client.
> >
>
> > > Client and server Ubuntu 18.04.
> >
>
> > > With a smooth fading or brightening of the Windows screen on a virtual
> >
>
> > > machine on the client, I see all the successively changing brightness.
> >
>
> > > The same thing happens when a video or something changes is drawn in the
> >
>
> > > browser.
> >
>
> > Hi,
>
> > not much to recommend with these conditions. I think quite out of SPICE
>
> > can handle.
>
> > The original design was more about sending rendering commands to clients
>
> > which does not help much with so slow bandwidth.
>
> > One of the 2 options to try is to force "wan optimization" setting it to
>
> > "always". This will use more JPEG for compression. Another would be to
>
> > reduce "jpeg_quality" setting (dcc.cpp) to a lower value (currently fixed
>
> > to 85).
>
> > An unfortunately VPN and queueing does not help, especially if TCP.
>
> > The reason is that while the server (which mainly send data) has a fast
>
> > connection to the VPN gateway the client doesn't so the server probably
>
> > will use a large queue causing latency issues. I have a quite dirty and
>
> > experimental patch to limit the queue but it won't help with other issues.
>
> > I think (it could be I'm wrong) that an approach more VNC like (drawing
>
> > all at host/guest level then send the collapsed changes to client) would
>
> > be better. I have another dirty patch but at the moment is even worse
>
> > at the optimization level so won't help too.
>
> > Regards,
>
> > Frediano
>
> Indeed, the VSC works better under such conditions. But unfortunately it
> doesn’t have some very convenient functions, for example, auto-adjustment of
> the server size for the client.
> As I understand from your letter, sending data for rendering occurs through
> the queue. As an idea, I can offer to combine packages for rendering if they
> have not had time to leave yet. Or monitor the queue overflow and, in case
> of overflow, clear it and send the entire screen in one packet. This will
> give the desired effect for channels with minimal performance.
Hi,
I was more speaking at queue in general, but I think part of the issue
are the network buffers in this case beside client queue.
I prepare a small experimental branch at https://gitlab.freedesktop.org/fziglio/spice/-/tree/wan_experiments
if you want to try, it allows to define SPICE_DEBUG_SNDBUF and SPICE_DEBUG_JPEG_QUALITY
(see https://gitlab.freedesktop.org/fziglio/spice/-/commit/2d3939a424284e44203bd5ed25cd37dbb9e66623
and https://gitlab.freedesktop.org/fziglio/spice/-/commit/ba64ca4ef02ee2aa49401f199aebff6ef6f93d63 ),
they should help a bit.
I tried to limit my network to 100KB/s and it was less terrible than I though,
beside an initial pretty large time to start.
Regards,
Frediano
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20200624/3583fa28/attachment-0001.htm>
More information about the Spice-devel
mailing list